home *** CD-ROM | disk | FTP | other *** search
/ NOVA - For the NeXT Workstation / NOVA - For the NeXT Workstation.iso / Documents / FAQ / PostScript / PostScript.faq < prev    next >
Text File  |  1992-12-27  |  119KB  |  3,116 lines

  1.  
  2.  
  3.                               -- PostScript -- 
  4.  
  5.                             Answers to Questions 
  6.  
  7.                    (the comp.lang.postscript FAQ v2.01) 
  8.  
  9.                                Jon Monsarrat 
  10.  
  11.                               jgm@cs.brown.edu 
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.                      This FAQ is formatted as a digest. 
  19.  
  20.                 Most news readers can skip from one question 
  21.  
  22.                      to the next by pressing control-G. 
  23.  
  24.  
  25.     Changes since the last version are marked with a '|' in the table 
  26.     of contents and in the sections in the text-only format of the FAQ. 
  27.  
  28.     Please help fix the FAQ! All comments should be mailed to 
  29.     jgm@cs.brown.edu. My favorite way to receive a change suggestion is 
  30.     when it is accompanied by a section of the FAQ that is edited and 
  31.     mailed to me verbatim as an example. If you would like to 
  32.     contribute, please read the section ``about the FAQ'' first. Thank 
  33.     you! 
  34.  
  35.     Books and programs are referred to by name only. See the 
  36.     appropriate sections for full information. 
  37.  
  38.     Related FAQs: comp.text, comp.text.tex, comp.fonts, comp.graphics, 
  39.  
  40.     Table of Contents 
  41.  
  42.  
  43.     This FAQ has 12 sections. It is available by anonymous ftp to 
  44.     wilma.cs.brown.edu:pub/comp.lang.postscript in ASCII, LaTeX, DVI, 
  45.     and PostScript formats. 
  46.  
  47.   
  48.       1 General Questions 
  49.           1.1 What is PostScript? 
  50.           1.2 How can I tell how many pages my document will have? 
  51.           1.3 How can I print just one page or a few pages from a big 
  52.           1.4 How can I print more than one page per sheet of paper? 
  53.           1.5 How can I edit a PostScript picture? 
  54.           1.6 How can I print PostScript on a non-PostScript printer? 
  55.       2 Printers 
  56.           2.1 How can I get my printer to talk back to me? 
  57.           2.2 Should I leave my printer on? 
  58.           2.3 How do I suppress the power-on start page? 
  59. |         2.4 How do I make a downloaded font ``persistent''? 
  60.           2.5 How do I remove a persistent (``permanent'') downloaded font? 
  61.           2.6 How do I reset the printer without power-cycling? 
  62.           2.7 About saving files 
  63. |         2.8 What's the control-D business? 
  64. |         2.9 Why does the printer say ``still busy'' when my document is 
  65.           2.10 How should I set up my spoolers? 
  66. |         2.11 What are PPD files? 
  67.       3 Formats and Conversions 
  68.           3.1 How can I convert PostScript to some other graphics format? 
  69.           3.2 How can I convert DVI to PostScript? 
  70.           3.3 How can I convert HP Laserjet language (PCL) to PostScript? 
  71.           3.4 How can I convert TeX PK format to PostScript? 
  72.           3.5 How do I embed PostScript into troff? 
  73.           3.6 How do I embed PostScript into LaTeX or TeX? 
  74.           3.7 How can I convert an image to PostScript? 
  75.           3.8 How can I convert ASCII text to PostScript? 
  76. |         3.9 How can I convert PostScript to ASCII? 
  77.       4 Fonts 
  78. |         4.1 What are .PFB and .PFA files? 
  79.           4.2 How can I convert a PostScript font to TeX's PK format? 
  80.           4.3 Why are Adobe fonts hidden? 
  81.           4.4 How do I get bitmap representations of Adobe fonts? 
  82.           4.5 What are some good ftp sites for fonts? 
  83.           4.6 How can I re-encode a font? 
  84.           4.7 What's the difference between a Type 1 and a Type 3 font? 
  85. |         4.8 What vendors sell fonts for PostScript printers? 
  86.           4.9 What are ATM fonts? 
  87.           4.10 What are Multiple Master Fonts? 
  88.           4.11 Do I need a Level Two printer to use Multiple Master Fonts? 
  89.           4.12 What are Type 4 fonts? 
  90.           4.13 What are Type 5 fonts? 
  91.       5 Books 
  92. |         5.1 Books 
  93. |         5.2 Publishers 
  94.       6 About Adobe 
  95.           6.1 How do I get in touch with Adobe? 
  96.           6.2 What can Adobe do for me? 
  97.       7 Programming in PostScript 
  98.           7.1 What is PostScript level 2? 
  99.           7.2 Should I learn level 2 PostScript? 
  100.           7.3 Where can I find examples of PostScript code? 
  101.           7.4 How do I get the physical size of a page? 
  102.           7.5 Why can't I do a pathforall after a charpath ? 
  103.           7.6 How do I center a string of text around a point? 
  104.           7.7 How can I concatenate two strings together? 
  105. |         7.8 What do I do when I get stack overflow/underflow? 
  106.           7.9 The Obfuscated PostScript Contest 
  107.       8 Computer-specific PostScript 
  108.           8.1 Sun Workstations 
  109. |         8.2 IBM PC 
  110.           8.3 Apple Macintosh 
  111.       9 Encapsulated PostScript 
  112. |         9.1 What is Encapsulated PostScript? 
  113. |         9.2 What are EPSI and EPSF? 
  114.           9.3 How do I convert PostScript to EPS? 
  115.           9.4 How do I get the bounding box of a PostScript picture? 
  116.       10 About The Comp.Lang.PostScript FAQ (and Usenet Guide to PostScript)
  117.           10.1 The PostScript FAQ: What is it? 
  118.           10.2 How to get the FAQ files 
  119.           10.3 How to write a FAQ answer 
  120.           10.4 The FAQ can contain LaTeX and PostScript inserts 
  121.           10.5 Revising the FAQ 
  122.           10.6 How to submit new information 
  123.           10.7 How to add a program description to the FAQ index 
  124.           10.8 How to add a book description to the FAQ 
  125.           10.9 Questions that need answers 
  126.       11 About PostScript 2 
  127.           11.1 What printers run PostScript 2? 
  128.           11.2 Introduction 
  129.           11.3 What is PostScript Level 2? 
  130.           (contains 31 other sections)
  131. |     12 PostScript Interpreters and Utilities 
  132.           12.1 How can I find a program? 
  133.           12.2 How can I browse through PostScript programs? 
  134. |         12.3 Keywords 
  135. |         12.4 Interpreters 
  136. |         12.5 Utilities 
  137.   
  138.  
  139.  
  140. ~Subject: 1 General Questions 
  141.  
  142.  
  143. ~Subject: 1.1 What is PostScript? 
  144.  
  145.     PostScript is a graphics programming language. 
  146.  
  147.     It is perhaps the most popular and versatile language for printers, 
  148.     being used in printers world-wide. It is capable of drawing to 
  149.     computer screens and any kind of drawing device. PostScript is 
  150.     interpreted, stack based and untyped, like the computer language 
  151.     FORTH. 
  152.  
  153.     A number of programmers write PostScript programs directly for a 
  154.     variety of drawing applications. However, PostScript programs are 
  155.     usually documents meant to be printed that have been generated by a 
  156.     program written in some compiled language. 
  157.  
  158.  
  159. ~Subject: 1.2 How can I tell how many pages my document will have? 
  160.  
  161.     The easiest way to count pages is view your document on-line with a 
  162.     PostScript previewer. Some previewers like Ghostview and GSPreview 
  163.     count the pages for you. (See Section 12, ``PostScript Interpreters 
  164.     and Utilities''.) 
  165.  
  166.     If your document is generated by a professional program, you should 
  167.     be able to just count the number of ``%%Page:'' comments 
  168.     imbedded in the document. With UNIX you can type 
  169.   
  170.   grep -c %%Page document.ps
  171.   
  172.     to do this counting. (See Section 9, ``Encapsulated PostScript''.) 
  173.  
  174.     The only completely reliable way to count pages is to ask the 
  175.     printer. PostScript printers maintain a page counter that can be 
  176.     queried before and after the job is printed, and the page count is 
  177.     a simple subtraction. This tends to require rather sophisticated 
  178.     spooling systems and a communications channel that is 
  179.     bidirectional. However, some printers allow you to submit jobs on 
  180.     one port, and issue queries on another. Experts using a level 2 
  181.     printer can use the SerialOff.PS and SerialEHandlder.ps programs to 
  182.     communicate bidirectionally to the printer. 
  183.  
  184.  
  185. ~Subject: 1.3 How can I print just one page or a few pages from a big 
  186.     document? How can I print pages in reverse order? 
  187.  
  188.     Try using a host-specific program, like the UNIX command psrev, 
  189.     which is part of the TranScript suite of software from Adobe 
  190.     Systems. Or use the more general utilities Ghostview, psutils or 
  191.     psxlate. 
  192.  
  193.     There is no guarantee that a given PostScript document can be split 
  194.     in such a manner. The reason is that some programs which generate 
  195.     PostScript code don't conform to the Adobe Document Structuring 
  196.     Conventions (DSC). (See Section 9, ``Encapsulated PostScript''.) A 
  197.     notable example of this is Microsoft Word. 
  198.  
  199.  
  200. ~Subject: 1.4 How can I print more than one page per sheet of paper? 
  201.  
  202.     Use psnup or pstext or enscript. 
  203.  
  204.     These programs redefine the PostScript ``showpage'' command to do 
  205.     multiple PostScript pages per physical page. If one program doesn't 
  206.     work with a complex document, try out other ones. 
  207.  
  208.  
  209. ~Subject: 1.5 How can I edit a PostScript picture? 
  210.  
  211.     If you know the PostScript programming language, just use any text 
  212.     editor to edit the code directly. 
  213.  
  214.     If you want to do it visually, you can use Canvas on the Macintosh. 
  215.  
  216.  
  217. ~Subject: 1.6 How can I print PostScript on a non-PostScript printer? 
  218.  
  219.     You need a tool that converts to something that your printer knows 
  220.     how to print. Use Freedom of Press, GhostScript, hp2pbm, pageview, 
  221.     TScript, or UltraScript. 
  222.  
  223. ~Subject: 2 Printers 
  224.  
  225.  
  226. ~Subject: 2.1 How can I get my printer to talk back to me? 
  227.  
  228.     Experts using a level 2 printer can use the SerialOff.PS and 
  229.     SerialEHandlder.ps programs to communicate bidirectionally to the 
  230.     printer. 
  231.  
  232.  
  233. ~Subject: 2.2 Should I leave my printer on? 
  234.  
  235.     The general consensus seems to be that most computer equipment 
  236.     lasts longer if left on. This presents less thermal stress to the 
  237.     components. 
  238.  
  239.  
  240. ~Subject: 2.3 How do I suppress the power-on start page? 
  241.  
  242.     Disabling the start page is described in your printer's PostScript 
  243.     supplement. The most common sequence is ``serverdict begin 0 
  244.     exitserver statusdict begin false setdostartpage end''. 
  245.  
  246.  
  247. ~Subject: 2.4 How do I make a downloaded font ``persistent''? 
  248. |
  249. |  
  250. |  %!PS-Adobe-2.0 ExitServer
  251. |  %%BeginExitServer: 0
  252. |  serverdict begin 0 exitserver
  253. |  %%EndExitServer
  254. |  % Test for existence of font, abort if present.
  255. |  % This won't work on a printer with a hard disk!
  256. |  /str 32 string def
  257. |  /Eurostile dup FontDirectory exch known
  258. |  { str cvs print ( is already loaded!\n) print flush quit }
  259. |  { (loading font ) print str cvs print (\n) print flush }
  260. |  ifelse
  261. |  %% Font follows...
  262. |  
  263. |   The part following " Eurostile to the name of the font. The default 
  264. |   PFA behavior is to use up additional VM for the new copy if another 
  265. |   copy has already been downloaded. 
  266.  
  267.  
  268. ~Subject: 2.5 How do I remove a persistent (``permanent'') downloaded font? 
  269.  
  270.     One trick for removing a persistent font (this requires that you 
  271.     knew you would need to remove it before you downloaded it) is to 
  272.     issue a ``serverdict begin 0 exitserver /magic-cookie save def'' 
  273.     before downloading and sending ``serverdict begin 0 exitserver 
  274.     magic-cookie restore'' when you want to reclaim all VM used since 
  275.     the first download. The downside of this is that is uses up a save 
  276.     level, but this is usually not a problem. 
  277.  
  278.  
  279. ~Subject: 2.6 How do I reset the printer without power-cycling? 
  280.  
  281.     Most printers can be reset by issuing "serverdict begin 0 
  282.     exitserver systemdict /quit get exec". 
  283.  
  284.  
  285. ~Subject: 2.7 About saving files 
  286.  
  287.     Adobe recommends that driver writers do not put EOT (control-D) 
  288.     into files when saving to disk. Normally, the EOT is a part of the 
  289.     protocol for parallel and serial ports and never hits the 
  290.     PostScript interpreter. 
  291.  
  292.     Drivers that do embed EOD can create problems for devices that 
  293.     allow other communication methods (e.g. AppleTalk, Ethernet, and 
  294.     SCSI) where the EOT is not part of the communications protocol. It 
  295.     is useful to redefine EOT in these instances so that the 
  296.     interpreter does not generate an error. The recommended 
  297.     redefinition is: 
  298.  
  299.   
  300.                    (\004) cvn {} def
  301.   
  302.     This should convert any stand-alone embedded EOTs into a null 
  303.     procedure. 
  304.  
  305.  
  306. ~Subject: 2.8 What's the control-D business? 
  307.  
  308. |   PostScript printers communicating over serial lines use control-D 
  309. |   as an end of job indicator. The host computer should then wait for 
  310. |   the printer to send a control-D back to indicate that the job has 
  311. |   finished. Managing the serial protocol between host and printer 
  312. |   should be done by some form of print service, but if you're unsure 
  313. |   whether your print service is doing it, it's an idea to send one 
  314. |   yourself. 
  315. |
  316. |   PC type computers frequently do not have any kind of printer 
  317. |   manager and applications end up sending control-D characters to the 
  318. |   printer, sometimes before and after a job. PC applications 
  319. |   frequently embed a control-D as the first character in the print 
  320. |   file, presumably to flush out any other jobs, and thereby breaking 
  321. |   the Adobe Document Structuring Conventions. 
  322. |
  323. |   If you want to prevent applications from doing this, you could use 
  324. |   a spooler which would look at the end of every outgoing file and 
  325. |   drop the control-D on the end if there happened to be one. 
  326. |
  327. |   If you want a spooler, check out lprps. 
  328.  
  329.  
  330. ~Subject: 2.9 Why does the printer say ``still busy'' when my document is 
  331.     done printing? 
  332.  
  333. |   Sometimes when you finish a print job, the printer "Ready" light 
  334. |   keeps flashing for a minute or so. Somehow, the printer has 
  335. |   received some character(s) after the control-D which was sent 
  336. |   immediately after the PostScript file. The printer took these 
  337. |   character(s) to be another program, and eventually timed-out while 
  338. |   waiting for the rest of it. This can happen because of the host not 
  339. |   waiting for the printer to finish. 
  340.  
  341.  
  342. ~Subject: 2.10 How should I set up my spoolers? 
  343.  
  344.     Since PostScript usually is prefixed with ``%!'', it's easy to 
  345.     educate your spooler to autoselect between passing raw PostScript 
  346.     through to the printer or doing an "ASCII-to-PostScript" conversion 
  347.     first. There are many packages that will do this, including 
  348.     Transcript and psxlate. 
  349.  
  350.     Unfortunately, many PostScript applications generate PostScript 
  351.     without a proper "%!" magic cookie. 
  352.  
  353.     The spooler should be responsible for transmitting the ``job 
  354.     termination code'' (a control-D on serially-connected printers) to 
  355.     the printer, not the application. Do yourself a favor and disable 
  356.     (or filter out) control-Ds in your applications and generate them 
  357.     in the spooler. This will be far more reliable in the face of 
  358.     arbitrary input. 
  359.  
  360.  
  361. ~Subject: 2.11 What are PPD files? 
  362. |
  363. |   Adobe Postscript Printer Description (PPD) files describe how to 
  364. |   use the special features for a specific Postscript printer. They 
  365. |   are suppose to be human-readable, but they are really only readable 
  366. |   by PostScript gurus. It is the responsibility of the printer 
  367. |   manufacturer to supply PPD files. However, the Adobe mail server 
  368. |   has many of them. (see the Section 6, ``About Adobe'') 
  369.  
  370. ~Subject: 3 Formats and Conversions 
  371.  
  372.     This section describes all formats that can be converted to and 
  373.     from PostScript, and how to convert them. Encapsulated PostScript 
  374.     and Fonts have their own sections. 
  375.  
  376.  
  377. ~Subject: 3.1 How can I convert PostScript to some other graphics format? 
  378.  
  379.     Since PostScript is not just a picture-description language, but in 
  380.     fact a complete programming language, you will need a complete 
  381.     PostScript interpreter to convert or display a PostScript graphic. 
  382.     (See Section 12, ``PostScript Interpreters and Utilities''.) 
  383.  
  384.     Try using TranScript. 
  385.  
  386.  
  387. ~Subject: 3.2 How can I convert DVI to PostScript? 
  388.  
  389.     Use dvips. 
  390.  
  391.  
  392. ~Subject: 3.3 How can I convert HP Laserjet language (PCL) to PostScript? 
  393.  
  394.     Use lj2ps for simple PCL. Alternatively, another lj2ps, from 
  395.     psroff3.0, is a little more complete. 
  396.  
  397.     hp2pbm can convert all of PCL4 (up to and including rasters, 
  398.     downloaded fonts and macros). 
  399.  
  400.  
  401. ~Subject: 3.4 How can I convert TeX PK format to PostScript? 
  402.  
  403.     Psroff3.0 contains programs that can convert TeX PK format or HP 
  404.     SFP format fonts into PostScript bitmap fonts. While bitmap bfonts 
  405.     scale poorly, this is sometimes of use in special circumstances. 
  406.  
  407.  
  408. ~Subject: 3.5 How do I embed PostScript into troff? 
  409.  
  410.     Most troffs can be ``coerced'' into including PostScript figures. 
  411.     The best approach is a configuration that takes EPS PostScript and 
  412.     can automatically scale it, or tell troff how big the picture is. 
  413.     Groff and DWB 3 have this built in. 
  414.  
  415.     psfig is an add-on EPS inclusion handler that can add this 
  416.     capability to other versions of troff, provided that a compatible 
  417.     PostScript driver is used (Psroff 3.0 for ditroff or CAT troff, 
  418.     Transcript for ditroff). See the comp.text FAQ for more detail. 
  419.  
  420.  
  421. ~Subject: 3.6 How do I embed PostScript into LaTeX or TeX? 
  422.  
  423.     You should use an add-on program for seamless PostScript inclusion. 
  424.  
  425.     For generic PostScript in a professional document, use psfig. 
  426.  
  427.     If your LaTeX is simple, but your PostScript is fancy, try using 
  428.     LameTeX. 
  429.  
  430.     If you need a good compromise, use pstricks. 
  431.  
  432.     For more detail, see the comp.text.tex FAQ. 
  433.  
  434.  
  435. ~Subject: 3.7 How can I convert an image to PostScript? 
  436.  
  437.     Try PBMPLUS. 
  438.  
  439.     To convert an image to PostScript in X windows, you can display the 
  440.     image on the screen and then use ``xpr -device ps'' in the 
  441.     resulting X11 window. For example, to convert GIF to PostScript, 
  442.     use xv or xshowgif (ftp from bongo.cc.utexas.edu (128.83.186.13)) 
  443.     and then xpr. 
  444.  
  445.     A more general alternative in X windows would be to use the PPM, 
  446.     PGM and PBM utilities in the X11R4 and X11R5 distributions. 
  447.  
  448.  
  449. ~Subject: 3.8 How can I convert ASCII text to PostScript? 
  450.  
  451.     Unless your printer is smart about raw ASCII, you can't just send 
  452.     the ASCII to a PostScript printer, because the printer will attempt 
  453.     to interpret your ASCII file as PostScript code. You need a program 
  454.     which will wrap some PostScript code around your ASCII file. 
  455.  
  456.     Try any of the following programs: asciiprint.ps, ato2pps, cz, 
  457.     ETSR, i2ps, lpp, lwf, POSTPRN, printer, psf, psfx80, PSR, ps2txt, 
  458.     pstext, swtext, text2ps, TranScript, spike.ps, enscript, nenscript, 
  459.     a2ps, asc2ps, ascii2ps, crossword.ps, double.ps, landscape.ps, 
  460.     numbered.ps, portrait.ps, or wide.ps. 
  461.  
  462.  
  463. ~Subject: 3.9 How can I convert PostScript to ASCII? 
  464. |
  465. |    In general, when you say ``I want to convert PostScript to ASCII'' 
  466. |    what you really mean is ``I want to convert MacWrite (which makes 
  467. |    PostScript output) to ASCII'' or ``I want to convert somebody's TeX 
  468. |    document (which I have in PostScript) to ASCII''. 
  469. |
  470. |    Unfortunately, programs like these (if they're smart) do a lot of 
  471. |    fancy stuff like kerning, which means that where they would 
  472. |    normally execute the postscript command for 
  473. |
  474. |  
  475. |      ``print water buffalo''
  476. |  
  477. |    instead they execute the postscript command for 
  478. |
  479. |  
  480. |      ``print wat''      (move a little to get the spacing *just* right)
  481. |      ``print er''       (move a little to get the spacing *just* right)
  482. |      ``print buff''     (move a little to get the spacing *just* right)
  483. |      ``print alo''      (move a little to get the spacing *just* right)
  484. |  
  485. |    So if I write a program to look through a PostScript file for 
  486. |    strings, like ps2ascii.pl, It can't tell where the words really 
  487. |    end. Here my program would see 4 strings 
  488. |
  489. |  
  490. |  ``wat'' ``er'' ``buff'' ``alo''
  491. |  
  492. |    And it doesn't see any difference between the spacing between 
  493. |    ``buff'' and ``alo'' (not a word break) and the spacing between 
  494. |    ``er'' and ``buff'' (a real word break). 
  495. |
  496. |    The problem is that PostScript for text formatting is usually 
  497. |    produced machine generated by a text formatter. A PostScript 
  498. |    generator like dvips might have a special command like ``boop'' 
  499. |    that differentiates between a real world break and a fake one. But 
  500. |    every text formatter that generates PostScript has their own name 
  501. |    for the ``boop'' command. 
  502. |
  503. |    So you really want a ``PostScript -> ASCII converter for dvips 
  504. |    output''. 
  505. |
  506. |    The only general solution I can see would be to redefine the show 
  507. |    operator to print out the currentpoint for every letter being 
  508. |    printed, like gs2asc, and then make up an ASCII page based on this 
  509. |    by sticking ASCII characters where they go in a two-dimensional 
  510. |    array. That would convert PostScript to ASCII "formatted". 
  511. |
  512. |    But even that wouldn't solve the problem, because special bitmap 
  513. |    fonts and and standard fonts like Symbol don't always print a "P" 
  514. |    when you say the letter "P". Sometimes they print the greek Pi 
  515. |    symbol or a chess piece or a ZapfDingBat. 
  516.  
  517.     Use ps2a, ps2ascii, ps2txt, ps2ascii.ps or ps2ascii.pl. 
  518.  
  519.     For UNIX users, the following csh command will extract all of the 
  520.     strings from a PostScript file and print them. 
  521.  
  522.   
  523.   % usage: unps < infile.ps > outfile.txt
  524. alias unps \(sed \
  525.  \''s/%.*$//g;s/^[ \t]*[^()]*$//g;s/^[^(]*(//g;s/)[^(]*(/ /g;s/)[^)]*$//g;'\' \
  526.  \| tr '\\012' '\\040' \| tr -s '\\040' '\\040' \; echo \'\'\)
  527.   
  528. ~Subject: 4 Fonts 
  529.  
  530.     This section answers questions about fonts as they pertain to 
  531.     PostScript. See the comp.fonts FAQ for more information about 
  532.     fonts. 
  533.  
  534.  
  535. ~Subject: 4.1 What are .PFB and .PFA files? 
  536.  
  537.     ``PFB'' stands for Printer Font Binary, and is a binary format in 
  538.     which Adobe Type 1 font programs are usually distributed for IBM PC 
  539.     and compatibles. Many application programs support fonts in this 
  540. |   format, and refer to them as ``downloadable''. The Macintosh uses a 
  541. |   different binary storage format than does the PC. 
  542.  
  543.     PFB files are compressed, and as a result, cannot be sent directly 
  544.     to a PostScript printer. Application programs like dvips which use 
  545.     fonts in this format uncompress the font before sending it to the 
  546.     printer. If you would like to use a font which is in PFB format, it 
  547.     is necessary to uncompress it first, to make a PFA file. Adobe 
  548. |   Systems supply a font downloader for PC's which turns the PFB 
  549. |   format into PFA format on the fly as it's being downloaded. 
  550.  
  551.     ``PFA'' stands for Printer Font ASCII, which is the uncompressed 
  552.     version of a PFB file. Once you have the PFA file, just send it to 
  553.     the printer ahead of your file, and use the font like any other. 
  554.     There are several programs which can do the conversion from PFB to 
  555.     PFA for you. Try t1utils. 
  556.  
  557.  
  558. ~Subject: 4.2 How can I convert a PostScript font to TeX's PK format? 
  559.  
  560.     Use ps2pk or try out the GNU font utilities in fontutils. 
  561.  
  562.  
  563. ~Subject: 4.3 Why are Adobe fonts hidden? 
  564.  
  565.     In PostScript level 1, Adobe's fonts were hidden because they 
  566.     didn't want people pirating copies instead of paying for them. 
  567.     That's why you can't do a pathforall on a charpath. 
  568.  
  569.     PostScript Level Two has removed the restriction, in the words of 
  570.     the new Red Book, ``for most fonts''. There will still be some 
  571.     vendors who will want to restrict access. Japanese font vendors, 
  572.     for example, are concerned about piracy -- given the work that goes 
  573.     into an 8,000-character Kanji font. 
  574.  
  575.  
  576. ~Subject: 4.4 How do I get bitmap representations of Adobe fonts? 
  577.  
  578.     On the IBM PC, use the Font Foundary program included with the 
  579.     font. If you don't have it, contact Adobe for an upgrade. 
  580.  
  581.  
  582. ~Subject: 4.5 What are some good ftp sites for fonts? 
  583.  
  584.   
  585.   ftp.cs.umb.edu
  586.   sumex-aim.stanford.edu
  587.   archive.umich.edu
  588.   ftp.cica.indiana.edu    /pub/pc/win3/fonts
  589.   colonsay.dcs.ed.ac.uk   /pub/postscript/fonts
  590.   yak.css.itd.umich.edu
  591.   
  592.   
  593.   For the NeXT platform, fonts are available on the NeXT-FTP-archives,
  594.           sonata.cc.purdue.edu :/pub/next/graphics/fonts
  595.           fiasko.rz-berlin.mpg.de :/pub/next/fonts
  596.   
  597.     For Macintosh, look in sumex-aim.stanford.edu, 
  598.     mac.archive.umich.edu, and ftp.cs.umb.edu (192.12.26.23), in 
  599.     pub/tex/ps-screenfonts.tar.Z. 
  600.  
  601.     Color PostScript samples and many other PostScript programs are 
  602.     available from irisa.irisa.fr. 
  603.  
  604.  
  605. ~Subject: 4.6 How can I re-encode a font? 
  606.  
  607.     See ddev.ps for an example for code that does this. 
  608.  
  609.  
  610. ~Subject: 4.7 What's the difference between a Type 1 and a Type 3 font? 
  611.  
  612.     The Type 1 font format has nothing to do with TrueType, which is 
  613.     another font format defined by Apple. The Type 1 font format has 
  614.     been around quite a while, and is used on a wide variety of 
  615.     platforms to obtain scalable fonts. 
  616.  
  617.     The Type 1 font format is a compact way of describing a font 
  618.     outline using a well-defined language that can be quickly 
  619.     interpreted. The language contains operations to provide the 
  620.     rasterizer with additional information about a character, known as 
  621.     hints. The Type 1 font format is defined in the book "The Adobe 
  622.     Type 1 Font Format", also known as the black-and-white book, for 
  623.     the colors on its cover. 
  624.  
  625.     Most clone interpreters will not have Adobe's proprietary rendering 
  626.     technology which interprets font hints to improve the appearance of 
  627.     fonts shown at small sizes on low-resolution devices. The 
  628.     exceptions are PowerPage and UltraScript. 
  629.  
  630.     The Type 3 font format is a way of packaging up PostScript 
  631.     descriptions of characters into a font, so that the PostScript 
  632.     interpreter can rasterize them. It is often easier to create a Type 
  633.     3 font program by hand than to create the corresponding Type 1 font 
  634.     program. Type 3 font programs have access to the entire PostScript 
  635.     language to do their imaging, including the 'image' operator. They 
  636.     can be used for bitmapped fonts, although that is certainly not a 
  637.     requirement. The Type 3 font format contains no provisions for 
  638.     'hinting', and as such Type 3 font programs cannot be of as high a 
  639.     quality at low resolutions as the corresponding Type 1 font 
  640.     program. 
  641.  
  642.     Both formats are scalable formats, and both can be run on any 
  643.     PostScript interpreter. However, because of the requirement that a 
  644.     Type 3 font program have a full PostScript interpreter around, Type 
  645.     3 font programs cannot be understood by the Adobe Type Manager. 
  646.     Only Type 1 font programs can. 
  647.  
  648.     Because of Adobe Type Manager's wide availability on a large number 
  649.     of platforms (PC, Mac, and Unix), the Type 1 font format makes an 
  650.     excellent cross-platform scalable font standard. 
  651.  
  652.  
  653. ~Subject: 4.8 What vendors sell fonts for PostScript printers? 
  654.  
  655.     PostScript font vendors are many and varied. Here is a partial 
  656.     list. 
  657.  
  658.  
  659.  
  660.     Adobe Systems 
  661.       sells a variety of fonts. With the huge number of third-party 
  662.       Type 1 vendors, in recent years Adobe have specialized in 
  663.       creating their own ``Adobe Originals'' -- high-quality fonts, 
  664.       some of which are their renditions of classic faces (Adobe 
  665.       Garamond) and some of their own devising (Stone, Utopia, ...). 
  666.       Adobe Systems, 1585 Charleston Road, Mountain View, CA 94039. 
  667.       (415) 961-4400 
  668.  
  669.  
  670.     AGFA Compugraphic, 
  671.       90 Industrial Way, Wilmington, Massachusetts 01887. (508) 
  672.       658-5600. 
  673.  
  674.  
  675.     Bear Rock Technologies 
  676. |     specializes in bar code fonts. 4140 Mother Lode Drive, Suite 100, 
  677.       Shingle Springs California 95682. 
  678.  
  679.  
  680.     Bitstream, 
  681.       Athenaeum House, Cambridge, MA 02142. (617) 497-6222. 
  682.  
  683.  
  684.     Casady and Greene, 
  685.       22734 Portola Drive, Salinas, CA 93908. (408) 484-9228. 
  686.  
  687.  
  688.     Ecological Linguistics, 
  689.       specializes in non-Roman alphabets. Ecological Linguistics, P. O. 
  690.       Box 15156, Washington D. C. 20003. 
  691.  
  692.  
  693. |    Emigre Graphics 
  694. |     4475 "D" Street / Sacramento CA 95819 (800) 944 9021 ] Over 70 
  695. |     faces, all PostScript Type 1 ATM compatible, including the 
  696. |     omnipresent Modula and infamous Template Gothic. Almost all faces 
  697. |     are "must haves" for graphic designers. Call for free catalog. 
  698.  
  699.  
  700.     Image Club, 
  701.       # 5 1902 11th St Southeast, Calgary, Alberta T2G 2G2, Canada. 
  702.       (403) 262-8008. 
  703.  
  704.  
  705.     Lanston 
  706.       specializes in display faces. 
  707.  
  708.  
  709.     Letraset 
  710.       specializes in fancy kinds of script fonts, Letraset, 40 
  711.       Eisenhower Drive, Paramus, New Jersey 07652. (201) 845-6100 
  712.  
  713.  
  714.     Linguists Software 
  715.       specializes in non-Roman alphabets (Farsi, Greek, Hangul, Kanji, 
  716.       etc.) Linguists Software, P. O. Box 580, Edmonds, Washington 
  717.       98020-0580. (206) 775-1130. 
  718.  
  719.  
  720.     Monotype, 
  721.       53 West Jackson Boulevard, Suite 504, Chicago, IL 60604. 
  722.  
  723.  
  724.     Page Studio Graphics, 
  725.       Chandler, Arizona, specialize in symbols fonts such as Mac icons, 
  726.       keyboards, and others, Page Studio Graphics, 3175 North Price 
  727.       Road, # 1050, Chandler, Arizona 85224. (602) 839-2763. 
  728.  
  729.  
  730.     RightBrain Software, 
  731.       Palo Alto, CA (415 326-2974) carry the Adobe Type library for the 
  732.       NeXT platform. If you're working on NeXT, getting fonts in the 
  733.       correct form with all the ancillary information and downloaders 
  734.       and such is important. You can convert a Mac font to NeXT (PFA) 
  735.       format, but the NeXT demands an AFM file as well, and many Mac/PC 
  736.       font vendors omit AFM files because Mac/PC apps don't use them. 
  737.       For Adobe fonts for the NeXT, save yourself a lot of hassle by 
  738.       getting the fonts from RightBrain -- they often have sales. 
  739.  
  740.  
  741.     The Font Company 
  742.  
  743.  
  744.     TreacyFaces 
  745.  
  746.  
  747.     URW 
  748.       supplies high-quality fonts at low prices. They are also the 
  749.       creators of the top of the line font creation and editing 
  750.       software called Ikarus. URW, 4 Manchester Street, Nashua, New 
  751.       Hampshire 03060. (603) 882-7445. 
  752.  
  753.     Many more font vendors exist. Look in magazines and other sources. 
  754.     Look in U & lc, published by ITC, for long lists of vendors. 
  755.  
  756.  
  757. ~Subject: 4.9 What are ATM fonts? 
  758.  
  759.     There has been a rash of misunderstanding about the nature of Type 
  760.     1 fonts and what people call ATM fonts. ATM fonts are Adobe Type 1 
  761.     fonts. ATM stands for Adobe Type Manager -- a utility to render 
  762.     smooth characters on Macintosh and PC screens, from font outlines 
  763.     (Type 1 fonts) instead of using bitmap fonts. In one sense, there's 
  764.     no such thing as an ``ATM font'' -- ATM interprets Type 1 fonts, so 
  765.     there's no need to create a new name. A correctly constructed Type 
  766.     1 font can be interpreted by ATM. 
  767.  
  768.  
  769. ~Subject: 4.10 What are Multiple Master Fonts? 
  770.  
  771.     Multiple Master Fonts are an extension to the Adobe font format. 
  772.     providing the ability to interpolate smoothly between several 
  773.     ``design axes'' from a single font. Design axes can include weight, 
  774.     size, and even some whacko notions like serif to sans serif. 
  775.     Adobes' first Multiple Master Font was Myriad -- a two-axis font 
  776.     with WEIGHT (light to black) on one axis, and WIDTH (condensed to 
  777.     expanded) along the other axis. In the case of Myriad, there are 
  778.     four ``polar'' designs at the ``corners'' of the design space. The 
  779.     four designs are light condensed, black condensed, light expanded, 
  780.     and black expanded. 
  781.  
  782.     Given polar designs, you can set up a ``weight vector'' which 
  783.     interpolates to any point within the design space to produce a 
  784.     unique font for a specific purpose. So you can get a ``more or less 
  785.     condensed, somewhat black face''. 
  786.  
  787.  
  788. ~Subject: 4.11 Do I need a Level Two printer to use Multiple Master Fonts? 
  789.  
  790.     No -- Multiple Master Fonts can be used on any PostScript printer. 
  791.     Multiple Master Fonts need a new PostScript operator known as 
  792.     makeblendedfont. The current crop of Multiple Master Fonts supply 
  793.     an emulation of this operator so the printer doesn't need this 
  794.     operator. 
  795.  
  796.     A short tutorial on Multiple Master Fonts and makeblendedfont 
  797.     appears in PostScript by Example, by Henry McGilton and Mary 
  798.     Campione, published by Addison-Wesley. 
  799.  
  800.  
  801. ~Subject: 4.12 What are Type 4 fonts? 
  802.  
  803.     Type 4 fonts are actually Type 1 fonts, but stored on hard disk in 
  804.     a special way to save space when they're loaded into printer RAM by 
  805.     findfont. 
  806.  
  807.  
  808. ~Subject: 4.13 What are Type 5 fonts? 
  809.  
  810.     Type 5 fonts are actually Type 1 fonts, but stored in printer ROM 
  811.     in a special compressed format. They're also known as CROM fonts 
  812.     (for Compressed ROM fonts). 
  813.  
  814.  
  815.                               Acknowledgments 
  816.  
  817.     This FAQ was compiled based heavily on the contributions of and 
  818.     with the help of Henry McGilton, Howard Gayle, Carl Orthlieb, Ed 
  819.     Garay, Robert Lerche, Bruno Hall, and Chris Lewis. 
  820.     Also thanks to contributors Karl Berry, Jerry Black, Charles 
  821.     Cashion, Jim DeLaHunt, Leonard Hamey, Elliotte Harold, Chris 
  822.     Herborth, Steve Kinzler, Bill Lee, Timo Lehtinen, Carl Lydick, Bill 
  823.     Pringle, Tony Valsamidis, and Jamie Zawinski. 
  824.     Special thanks to Ken Porter, who originally compiled and organized 
  825.     this FAQ. 
  826.  
  827.   Ver  Date     Reason
  828.   ----------------------------------------------------------------
  829.   1.00 12-18-90 Creation by Ken Porter
  830.   1.06  5-29-91 expanded on EPS explanation, general updates
  831.   2.00 10-25-92 Brought up to date and expanded, by Jon Monsarrat
  832.   
  833.   
  834.     This FAQ is copyright (C) 1992 by Jonathan Monsarrat. Permission is 
  835.     granted to freely edit and distribute as long as this copyright 
  836.     notice is included. 
  837.  
  838.     This document was written with the LaTeX language and formatted by 
  839.     LameTeX, the PostScript hacker's LaTeX. 
  840.  
  841.     Jonathan Monsarrat 
  842.   
  843. %! Jon Monsarrat   jgm@cs.brown.edu   Brown University %! Obfuscated PostScript
  844. /p 4/f{{}forall moveto gsave{dup 32 mod dup 15 mul rotate sub p div 0 rlineto}
  845. forall fill grestore}def 4 scale 1 def(``f`f`f)dup(  )f( i).3 setgray f/p 8 def
  846. 1 setgray/h(F!6! 2477!W)def h("4)h(,C)h(6O)h(LT)h(^O)h(tC)h(~6)(7!6!"7#$&6!7 #)
  847. (9~)(""""""""""")(}~)(fTV``Vt)(9!)(e!FR"n&44ED-w@-7&&b)(C2)11{f}repeat showpage
  848.  
  849. From: jgm@cs.brown.edu (Jonathan Monsarrat)
  850. Date: Tue, 1 Dec 1992 05:17:58 GMT
  851. Newsgroups: comp.lang.postscript,news.answers
  852. Subject: PostScript monthly FAQ v2.01 11-30-92 [05-06 of 12]
  853.  
  854. Archive-name: postscript-faq/part5-6
  855. Last-modified: 1992/11/30
  856. Version: 2.01
  857.  
  858.                               -- PostScript -- 
  859.  
  860.                             Answers to Questions 
  861.  
  862.                    (the comp.lang.postscript FAQ v2.01) 
  863.  
  864.                                Jon Monsarrat 
  865.  
  866.                               jgm@cs.brown.edu 
  867.  
  868.  
  869.  
  870.  
  871.  
  872.  
  873.                      This FAQ is formatted as a digest. 
  874.  
  875.                 Most news readers can skip from one question 
  876.  
  877.                      to the next by pressing control-G. 
  878.  
  879.  
  880.     Changes since the last version are marked with a '|' in the table 
  881.     of contents and in the sections in the text-only format of the FAQ. 
  882.  
  883.     Please help fix the FAQ! All comments should be mailed to 
  884.     jgm@cs.brown.edu. My favorite way to receive a change suggestion is 
  885.     when it is accompanied by a section of the FAQ that is edited and 
  886.     mailed to me verbatim as an example. If you would like to 
  887.     contribute, please read the section ``about the FAQ'' first. Thank 
  888.     you! 
  889.  
  890.     Books and programs are referred to by name only. See the 
  891.     appropriate sections for full information. 
  892.  
  893. ~Subject: 5 Books 
  894.  
  895.     There are many good books on PostScript language programming. 
  896.     Descriptions of all known books are listed below. A listing of 
  897.     publisher information follows. 
  898.  
  899.     The most commonly known books are the ``blue book'', ``red book'', 
  900.     and ``green book'' from Adobe, to be read in that order. They are 
  901.     nicknamed according for their jacket colors. 
  902.  
  903.     Other books recommended to me include Thinking in PostScript, 
  904. |   which allows its examples to be freely distributed, and PostScript 
  905.     by Example. 
  906.  
  907.  
  908. ~Subject: 5.1 Books 
  909.  
  910.  
  911.     Adobe Accurate Screens 
  912.       explains in detail all the issues and specifically covers Adobe 
  913.       Accurate Screens -- Adobes' own screening technology. Peter Fink 
  914.       is an expert on the subject of halftone screens as they relate to 
  915.       color issues. 
  916.  
  917.       Author: Peter Fink 
  918.       Publisher: Adobe Press, 1992. 
  919.       ISBN 0-672-48544-3 
  920.       Library Call # ??? 
  921.  
  922.     Adobe Illustrator 88, The Official Handbook for Designers 
  923.  
  924.       Authors: Tony Bove, Fred Davis, Cheryl Rhodes 
  925.       Publisher: Bantam Computer Books 1988. 
  926.       ISBN 0-553-34629-6 
  927.  
  928.     Adobe Type 1 Font Format, ``the black book'' 
  929.  
  930.       This is the specification for the Type 1 font format. Type 1 
  931.       fonts are the standard outline format found in Adobe PostScript 
  932.       printers, implementations of the Display PostScript system, and 
  933.       available as downloadable fonts from the Adobe Type Library. This 
  934.       document describes the syntax of the Adobe Type 1 font format, 
  935.       including complete information regarding hints, encoding of 
  936.       character outlines, and the charstring and eexec encryption 
  937.       algorithms. 
  938.  
  939.       Author: Adobe Systems Inc 
  940.       Publisher: Addison-Wesley, 1990. 
  941.       ISBN 0-201-57044-0 
  942.       Library Call # ??? 
  943.  
  944. |   Creating Special Effects on the Macintosh 
  945. |
  946. |     Author: David Holzgang 
  947. |     Publisher: Addison-Wesley, 1992 
  948. |     ISBN 0-201-57779-8 
  949.  
  950.     Display PostScript Programming 
  951.       ??? 
  952.  
  953.       Author: David A. Holzgang 
  954.       Publisher: Addison Wesley, 1990 
  955.       ISBN ??? 
  956.       Library Call # ??? 
  957.  
  958.     Encapsulated PostScript: Application Guide for the Macintosh and 
  959.     the PC 
  960.       has its focus is EPS. However, it is an excellent book full of 
  961.       actual real life PostScript and Encapsulated PostScript 
  962.       applications on Macs, PCs, Unix, IBM mainframe, and other 
  963.       computer systems. 
  964.  
  965.       Author: Peter Vollenweider 
  966.       Publisher: Prentice Hall 1990 
  967.       ISBN 0-13-275-843-1 
  968.       Library Call # ??? 
  969.  
  970.     Graphic Design With PostScript 
  971.  
  972.       Author: Gerard Kunkel
  973.       Publisher: Scott, Foresman and Company, 1990 
  974.       ISBN 0-673-38794-1 
  975.       Library Call # Z286.D47K87 
  976.  
  977. |   Hands On PostScript 
  978. |
  979. |     This is an introduction to PostScript for the novice or casual 
  980. |     user. PostScript programming principles are introduced in the 
  981. |     context of useful projects (e.g. greeting cards, letterhead, 
  982. |     multi-page posters). The book includes five PostScript driver 
  983. |     projects in Basic, Pascal, and C. A 3.5" DOS formatted diskette 
  984. |     is included with all the source code. It does not cover 
  985. |     PostScript level 2. 
  986. |
  987. |     Author: Michael Spring and David Dubin 
  988. |     Publisher: Hayden Books, 1992 
  989. |     ISBN 0-672-30185-7 
  990. |     Library Call # 92-71207 Cost: 29.95. 
  991.  
  992. |   Inside the Apple LaserWriter 
  993. |
  994. |     Author: Roger Hart 
  995. |     Publisher: Scott, Foresman, 1989 
  996. |     ISBN 0-673-38064-5 
  997. |     Library Call # : TK7887.7.H38 
  998.  
  999.     Inside PostScript 
  1000.       essentially takes one on a tour of the standard internal 
  1001.       PostScript code in most printers. The author has worked 
  1002.       extensively with an interpreter. (in PostScript terms, no 
  1003.       low-level hardware stuff here like cexec and internaldict). 
  1004.  
  1005.       Author: Frank Merritt Braswell 
  1006.       Publisher: Systems of Merritt & Peachpit Press 1989 
  1007.       ISBN 0-938151-10-X 
  1008.       Library Call # ??? 
  1009.       Cost: about $ 40. 
  1010.  
  1011.     Learning PostScript, A Visual Approach 
  1012.       is a tutorial on the PostScript language. It is very appealing, 
  1013.       very easy to follow and filled with examples. Each example 
  1014.       occupies two pages. A brief explanation and source code is on the 
  1015.       left page, and the resultant print-out is on the facing right 
  1016.       page. The book starts off very simply for beginners, and covers a 
  1017.       lot of material at the end for experts. It was written before 
  1018.       level 2 PostScript. 
  1019.  
  1020.       In the later half of the book, a few examples can executed only 
  1021.       if an additional disk is purchased. 
  1022.  
  1023.       The code for LPAVA is $ 20 from Smith Consultants, 834 Third St., 
  1024.       Suite B, Santa Rosa, CA 95404, U.S.A. fax number: 415-524-9775 
  1025.  
  1026.       Author: Ross Smith 
  1027.       Publisher: Peachpit Press, 1990 ISBN 0-938151-12-6 
  1028.       Library Call # QA76.73.P67S55 
  1029.       Cost: $ 22.95 
  1030.  
  1031. |   Linotronic Imaging Handbook 
  1032. |
  1033. |     Author: James Cavuoto and Stephen Beale 
  1034. |     Publisher: Micro Publishing Press, 1990 
  1035. |     ISBN 0-941845-06-0 
  1036.  
  1037.     Mastering Adobe Illustrator 
  1038.       ??? 
  1039.  
  1040.       Author: David A. Holzgang Publisher: Addison Wesley, 1988 ISBN 
  1041.       ??? 
  1042.       Library Call # ??? 
  1043.  
  1044.     Mastering Adobe Illustrator 88 
  1045.       ??? 
  1046.  
  1047.       Authors: Deke McClelland and Craig Danuloff 
  1048.       Publisher: Publishing Resources Inc.-Dow Jones Irwin 1989 
  1049.       ISBN ??? 
  1050.       Library Call # ??? 
  1051.  
  1052.     PostScript by Example 
  1053.       is a tutorial for PostScript people at all levels. It covers 
  1054.       level 2 PostScript. The book starts at novice level and works 
  1055.       through to Level Two composite fonts, patterns, forms, color, 
  1056.       halftones, Display PostScript rectangle operators and text 
  1057.       operators. It contains a chapter on practical issues of 
  1058.       downloading fonts, talking to printers, and error handling. 640 
  1059.       pages containing over 500 fragments of PostScript code and over 
  1060.       750 illustrations. A long-awaited ``upgrade'' to the Blue Book. 
  1061.  
  1062.       Henry McGilton can be reached by email as 
  1063. |     henry@trilithon.mpk.ca.us. Mary Campione can be reached by email 
  1064. |     as mem@taranis.com. 
  1065.  
  1066.       A disk containing 13,000 lines of PostScript code from the book 
  1067.       can be ordered separately for $ 20 from: Trilithon Software, Two 
  1068.       Ohlone, Portola Valley, CA 94028, U.S.A. 
  1069.  
  1070.       Or, send email to info@trilithon.mpk.ca.us. 
  1071.  
  1072.       Authors: Henry McGilton and Mary Campione 
  1073.       Publisher: Addison Wesley, 1992. 
  1074.       ISBN 0-201-63228-4 
  1075.       Library Call # QA76.73.P67M34 
  1076.  
  1077.     A PostScript Cookbook 
  1078.  
  1079.       Author: Barry Thomas 
  1080.       Publisher: Van Nostrand Reinhold, 1988. 
  1081.       ISBN 0-442-23686 
  1082.       Library Call # ??? 
  1083.  
  1084.     PostScript Language Program Design, ``the green book'' 
  1085.       is intended to teach the fundamentals of designing PostScript 
  1086.       language programs and to show how the language works, so the your 
  1087.       programs will be fast, well-behaved, easy to understand, and 
  1088.       portable. 
  1089.  
  1090.       Code Examples: $ 15 from the developer support hotline. Free from 
  1091.       the Adobe mail server (see Section 6, ``About Adobe''). 
  1092.  
  1093.       Author: Glenn Reid, Adobe Systems 
  1094.       Publisher: Addison Wesley 1988 
  1095.       ISBN 0-201-14396-8 
  1096.       Library Call # ??? 
  1097.       Cost: $ 22.95 
  1098.  
  1099.     PostScript Language Reference Manual (2nd ed), ``the red book'' 
  1100.       is the book that defines the PostScript language. The second 
  1101.       edition not only defines Level 1 PostScript, but also encompasses 
  1102.       the color, composite font, file system, and DPS extensions and 
  1103.       the PostScript language Level 2. 
  1104.  
  1105.       Author: Adobe Systems Incorporated 
  1106.       Publisher: Addison Wesley 1985, 1990 
  1107.       ISBN 0-201-18127-4 
  1108.       Library Call # QA76.73.P67P67 
  1109.       Cost: $ 28.95 
  1110.  
  1111.     PostScript Language Reference Manual (1st ed), ``the old red book'' 
  1112.       is the first edition of the reference manual. It describes 
  1113.       PostScript level 1 only. It is a subset of the PostScript level 2 
  1114.       book, but is still more common and costs less. 
  1115.  
  1116.       Author: Adobe Systems Inc. 
  1117.       Publisher: Addison-Wesley, 1985. 
  1118.       ISBN 0-201-10174-2 
  1119.       Library Call # ??? 
  1120.  
  1121.     PostScript Language Tutorial and Cookbook, ``the blue book'' 
  1122.       is the most common tutorial book on PostScript. It provides an 
  1123.       easy, informal introduction to the PostScript language and 
  1124.       graphics primitives. The cookbook is a collection of programs 
  1125.       that are offered as examples of PostScript usage. These samples 
  1126.       have been chosen both as illustrations of the functional range of 
  1127.       PostScript and as useful ingredients for inclusion in application 
  1128.       packages. 
  1129.  
  1130.       Code Examples: $ 15 from the developer support hotline. Free from 
  1131.       the Adobe mail server (see Section 6, ``About Adobe''). 
  1132.  
  1133.       Author: Adobe Systems Incorporated 
  1134.       Publisher: Addison Wesley 1985, 1990 
  1135.       ISBN 0-201-10179-3 
  1136.       Library Call # : QA76.73.P67P68 
  1137.       Cost: $ 16.75 
  1138.  
  1139.     Programming the Display PostScript System with NeXTstep, ``The 
  1140.     Purple Book'' 
  1141.       is written for the NeXT programming environment; however, much of 
  1142.       the information it contains applies to all Display PostScript 
  1143.       developers. The book explains the language extensions commonly 
  1144.       used within applications, describes many of the key aspects of 
  1145.       the PostScript language imaging model, and provides a framework 
  1146.       for creating Display PostScript language applications. 
  1147.  
  1148.       Author: Ken Fromm, Adobe Systems 
  1149.       Publisher: Addison-Wesley 
  1150.       ISBN 0-201-58135-3 
  1151.       Library Call # QA76.73.P67P76 
  1152.       Cost: $ 26.95 
  1153.  
  1154.     Programming the LaserWriter 
  1155.  
  1156.       Author: David Holzgang 
  1157.       Publisher: Addison-Wesley, 1991 
  1158.       ISBN 0-201-57068-8 
  1159.       Library Call # TK7887.7.H65 
  1160.  
  1161.     Real World PostScript: Techniques from PostScript professionals - 
  1162.     ``The Orange Book'' 
  1163.       is a collection of articles dealing with 'real world' PostScript 
  1164.       language issues and specific applications such as font creation, 
  1165.       color separation, kerning, halftoning, various other topics. 
  1166.  
  1167.       It contains a text formatter written in PostScript, and 
  1168.       concentrates on doing very sophisticated things with fonts and 
  1169.       dictionaries. 
  1170.  
  1171.       Short overview of chapters: 
  1172.  
  1173.       PostScript As A Design Tool; PostScript As A Programming 
  1174.       Language; Writing Device Independent PostScript; Kerning, 
  1175.       Tracking And Letterspacing, Precise Character Bounding Boxes; 
  1176.       Building Fonts; Building Smart Fonts; Font Encoding Vector 
  1177.       Compatibility; Building A PostScript Typeface; PostScript Color 
  1178.       Operations; PostScript Color Separations; A Spread From Graphic 
  1179.       Perspective; A PostScript Four-Color Poster; Graphing And 
  1180.       Typesetting With PostScript; The Evolution Of A Complex Geometric 
  1181.       Logo 
  1182.  
  1183.       Author: Stephen F. Roth, editor. 
  1184.       Publisher: Addison Wesley, 1988. 
  1185.       ISBN 0-201-06663-7 
  1186.       Library Call # Z286.D47R4 1988 
  1187.  
  1188.     Running PostScript from MS-DOS 
  1189.       provides a good and brief introduction to PostScript and has lots 
  1190.       of useful information on printing PostScript from PCs. 
  1191.  
  1192.       Author: Gary Glover 
  1193.       Publisher: Windcrest Books, 1989. 
  1194.       ISBN 0-8306-2998-X 
  1195.       Library Call # : QA76.73.P67G56 
  1196.  
  1197.     Taking Advantage of PostScript 
  1198.       is very graphically and visually oriented and includes a section 
  1199.       on PostScript Level 2. 
  1200.  
  1201.       Author: John F. Sherman 
  1202.       Publisher: Wm. C. Brown Publishers, 1991. 
  1203.       ISBN ??? 
  1204.       Library Call # : ??? 
  1205.  
  1206.     Thinking in PostScript 
  1207. |     is a guide to developing programming techniques and to learning 
  1208. |     how to use the PostScript tool kit. In this book you can find 
  1209. |     some useful techniques even if you think of yourself as an expert 
  1210. |     PS programmer. It overlaps very little with existing material. 
  1211. |     You can find there numerous practical examples in all areas of PS 
  1212. |     language programming, including the Display PS system. In this 
  1213. |     volume you will also find: (a) never-before-published information 
  1214. |     on the PS language (b) useful algorithms for loops, conditionals, 
  1215. |     and I/O (c) detailed coverage of files, strings, and dictionaries 
  1216. |     (d) simple and elegant programming techniques 
  1217. |
  1218. |     The books comes recommended by many. There are also exercises 
  1219. |     after each Chapter with the results at the end of the book. You 
  1220. |     can really find examples how to define new useful operators or 
  1221. |     procedures which you cannot find in the Adobe books. 
  1222. |
  1223. |     To get the examples from the book for free, send email to the 
  1224. |     author, glenn@rightbrain.com. 
  1225.  
  1226.       Author: Glenn C. Reid 
  1227.       Publisher: Addison-Wesley, 1989 
  1228.       ISBN 0-201-52372-8 
  1229.       Library Call # : QA76.73.P67R46 Cost: $ 22.95 
  1230.  
  1231.     Understanding PostScript 
  1232.       ??? 
  1233.  
  1234.       Author: David A. Holzgang 
  1235.       Publisher: Sybex, 1988 
  1236.       ISBN 0-89588-396-1 
  1237.  
  1238.     Understanding PostScript Programming, Second Edition 
  1239.       ??? 
  1240.  
  1241.       Author: David Holzgang 
  1242.       Publisher: Sybex, 1988. 
  1243.       ISBN 0-89588-566-2 
  1244.       Library Call # : ??? 
  1245.  
  1246.     The Verbum Book of PostScript Illustration 
  1247.  
  1248.       Authors: Michael Gosney, Janet Ashford, and Linnea Dayton 
  1249.       Publisher: M & T Books, 1990. 
  1250.       ISBN 1-55851-089-3 
  1251.       Library Call # : QA76.73.P67G57 
  1252.  
  1253.  
  1254. ~Subject: 5.2 Publishers 
  1255.  
  1256.     Most of the above books should be available in any big bookstore 
  1257.     that has a computer section. Or contact the publishers: 
  1258.  
  1259.  
  1260.     Addison-Wesley, 
  1261.       Retail Sales Group, Addison-Wesley Publishing Company, Inc., One 
  1262.       Jacob Way, Reading, MA 01867, U.S.A. Phone 800-447-2226 or 
  1263.       617-944-3700, Fax 617-942-1117. 
  1264.  
  1265.     Addison-Wesley Publishing Company, 
  1266.       2200 Powell Street, Emeryville, California 94608 U.S.A. Phone 
  1267.       (510) 601-4000 
  1268.  
  1269.     Adobe Press 
  1270.       ??? 
  1271.  
  1272.     Bantam Computer Books 
  1273.       ??? 
  1274.  
  1275. |   Hayden Books, 
  1276. |     11711 N. College Ave., Carmel, IN 46032. 
  1277.  
  1278. |   Micro Publishing Press 
  1279. |     21150 Hawthorne Boulevard, Suite 104, Torrance, California 90503 
  1280. |     U.S.A. 
  1281.  
  1282.     Peachpit Press, 
  1283.       1085 Keith Ave., Berkeley, CA 94708, U.S.A. 800-283-9444, or 
  1284.       415-527-8555. 
  1285.  
  1286.     Prentice Hall 
  1287.       Englewood Cliffs, New Jersey 07632 
  1288.  
  1289.     Scott, Foresman and Company 
  1290.       1900 East Lake Avenue, Glenview, IL 60025 
  1291.  
  1292.     Publishing Resources Inc.-Dow Jones Irwin 
  1293.       ??? 
  1294.  
  1295.     Windcrest Books 
  1296. |     Blue Ridge Summit, Pennsylvania 17294-0850 
  1297.  
  1298.     Sybex 
  1299. |     2021 Challenger Drive, 100, Alameda, California 94501. 
  1300.  
  1301.       You can purchase the red, blue, green, and black books from Adobe 
  1302.       Systems by calling 800-83-FONTS. 
  1303.  
  1304.  
  1305. ~Subject: 6 About Adobe 
  1306.  
  1307.     PostScript was created by Adobe Systems Incorporated, which offers 
  1308.     information and sells programs pertaining to PostScript. 
  1309.  
  1310.     Currently the only large PostScript company that I have information 
  1311.     on is Adobe. I would be happy to include information about others. 
  1312.  
  1313.  
  1314. ~Subject: 6.1 How do I get in touch with Adobe? 
  1315.  
  1316.   
  1317.   Adobe Systems Incorporated      Main phone: +1-415-961-4400
  1318.   1585 Charleston Road            Main FAX:   +1-415-961-3769
  1319.   P.O. Box 7900
  1320.   Mountain View, CA 94039-7900
  1321.   
  1322.     If you want technical help using Adobe retail products (e.g. ATM, 
  1323.     Adobe Illustrator, Adobe Fonts): Adobe forum on CompuServe, call 
  1324.     +1-415-961-0911 (for Macintosh) or +1-415-961-4992 (for Windows, 
  1325.     Unix) Also use this number to report bugs in retail products. 
  1326.  
  1327.     For sales information on Adobe retail products (prices, catalogues, 
  1328.     etc.), call +1-800-235-0078 (fax-back brochures) or +1-800-833-6687 
  1329.     (applications sales) 
  1330.  
  1331.     The Developer's Hotline is +1-415-961-4111 (Voicemail) (note: 
  1332.     members have priority, but they'll take questions from general 
  1333.     public.) Also use this number for information about the ADA or 
  1334.     Adobe SDK's. 
  1335.  
  1336.     To suggest product enhancements, write or fax to ``Product Manger, 
  1337.     product name' at address above. 
  1338.  
  1339.     In Europe: Adobe Systems BV, Europlaza, Hoogoorddreef 51a, 1101 BE 
  1340.     Amsterdam Z-O, NETHERLANDS. TEL +31-20-65-11-200. FAX 
  1341.     +31-20-65-11-300. 
  1342.  
  1343.     In the eastern United States: Adobe Sys. Inc., 24 New England 
  1344.     Executive Park, Burlington MA 01803. TEL +1-617-273-2120. FAX 
  1345.     +1-617-273-2336. 
  1346.  
  1347.     In Japan: Adobe Systems Japan, Swiss Bank House, 4-1-8 Toranomon, 
  1348.     Minato ku, Tokyo 105 JAPAN. TEL +81-3-3437-8950. FAX 
  1349.     +81-3-3437-8968. 
  1350.  
  1351.  
  1352. ~Subject: 6.2 What can Adobe do for me? 
  1353.  
  1354.     Adobe is just one of many companies producing products for 
  1355.     PostScript, but it does produce a lot of the best. 
  1356.  
  1357.     Adobe offers two resources for software developers. 
  1358.  
  1359.    1. Membership in the Adobe Developers Association (ADA) ( $ 
  1360.       195/year) 
  1361.  
  1362.    2. PostScript Language Software Development Kit (SDK) ( $ 500, $ 250 
  1363.       for ADA) 
  1364.  
  1365.     The Developer's Association is Adobe's way of knowing who has a 
  1366.     serious interest in technical information. Membership includes 
  1367.     monthly technical newsletter, phone technical support, discounts on 
  1368.     software and hardware. Membership is $ 195/year for each 
  1369.     individual. 
  1370.  
  1371.     The PostScript Language Software Development Kits collect all 
  1372.     Adobe's technical literature for a given platform into a single 
  1373.     package. There are four versions, for the Mac, MS-DOS/Windows, 
  1374.     NeXTStep, and X/Windows. Each SDK is $ 500 list, $ 250 for ADA 
  1375.     members. 
  1376.  
  1377.     A selection of technical documents is available from Adobe's file 
  1378.     server, including the aforementioned EPS specification. For more 
  1379.     information on this, send the one-word message ``help'' to 
  1380.     ps-file-server@adobe.com. These documents are also available by 
  1381.     mail; call the Developers Line and ask for the documents catalog. 
  1382.  
  1383.     The ps-file-server contains some specs, tech notes, sample 
  1384.     programs, plus a large collection of AFM files and PPD files. Send 
  1385.     a message containing ``help'' to ps-file-server@adobe.com for more 
  1386.     information. You can get these files for free with email. 
  1387.  
  1388. From: jgm@cs.brown.edu (Jonathan Monsarrat)
  1389. Date: Tue, 1 Dec 1992 05:43:43 GMT
  1390. Newsgroups: comp.lang.postscript,news.answers
  1391. Subject: PostScript monthly FAQ v2.01 11-30-92 [07-10 of 12]
  1392.  
  1393. Archive-name: postscript-faq/part7-10
  1394. Last-modified: 1992/11/30
  1395. Version: 2.01
  1396.  
  1397.                               -- PostScript -- 
  1398.  
  1399.                             Answers to Questions 
  1400.  
  1401.                    (the comp.lang.postscript FAQ v2.01) 
  1402.  
  1403.                                Jon Monsarrat 
  1404.  
  1405.                               jgm@cs.brown.edu 
  1406.  
  1407.  
  1408.  
  1409.  
  1410.  
  1411.  
  1412.                      This FAQ is formatted as a digest. 
  1413.  
  1414.                 Most news readers can skip from one question 
  1415.  
  1416.                      to the next by pressing control-G. 
  1417.  
  1418.  
  1419.     Changes since the last version are marked with a '|' in the table 
  1420.     of contents and in the sections in the text-only format of the FAQ. 
  1421.  
  1422.     Please help fix the FAQ! All comments should be mailed to 
  1423.     jgm@cs.brown.edu. My favorite way to receive a change suggestion is 
  1424.     when it is accompanied by a section of the FAQ that is edited and 
  1425.     mailed to me verbatim as an example. If you would like to 
  1426.     contribute, please read the section ``about the FAQ'' first. Thank 
  1427.     you! 
  1428.  
  1429.     Books and programs are referred to by name only. See the 
  1430.     appropriate sections for full information. 
  1431.  
  1432.  
  1433. ~Subject: 7 Programming in PostScript 
  1434.  
  1435.  
  1436. ~Subject: 7.1 What is PostScript level 2? 
  1437.  
  1438.     PostScript Level Two is a major upgrade to PostScript Level One. 
  1439.  
  1440.     Starting from PostScript Level One as a basis, PostScript Level Two 
  1441.     represents the confluence of many features: 
  1442.  
  1443.  
  1444.  
  1445.     * Composite fonts -- fonts with the capability of supporting 
  1446.       character sets with more than 256 characters. Such fonts are 
  1447.       needed in the Asian marketplace, for example. 
  1448.  
  1449.  
  1450.     * Patterns -- provide a device-independent way to describe patterns 
  1451.       which tile an area. A pattern can be thought of as another kind 
  1452.       of ``color'' in PostScript Level Two. 
  1453.  
  1454.  
  1455.     * Forms -- to meet the demands of the forms market, forms describe 
  1456.       static information which can be repeated many times on one page 
  1457.       or printed on many separate pages, or both. 
  1458.  
  1459.  
  1460.     * Color -- the previous ill-defined color models are now enhanced 
  1461.       with the addition of CMYK color, support for color images, CIE 
  1462.       device-independent color (if anybody can understand the damned 
  1463.       thing). 
  1464.  
  1465.  
  1466.     * Halftones -- new highly accurate halftone screening methods to 
  1467.       meet the needs of high end typesetting equipment. 
  1468.  
  1469.  
  1470.     * Display PostScript -- many enhancements and efficiency 
  1471.       improvements to support the needs of screen rendering. 
  1472.       Enhancements include: 
  1473.  
  1474.  
  1475.  
  1476.        * efficient rectangle operators, 
  1477.  
  1478.  
  1479.        * efficient font and text operators, 
  1480.  
  1481.  
  1482.        * multiple contexts 
  1483.  
  1484.  
  1485.        * shared memory models 
  1486.  
  1487.  
  1488.        * hit detection 
  1489.  
  1490.     A detailed description of PostScript 2 is available in the section 
  1491.     on PostScript 2. 
  1492.  
  1493.  
  1494. ~Subject: 7.2 Should I learn level 2 PostScript? 
  1495.  
  1496.     Yes, because Level Two will soon become the standard. Application 
  1497.     developers using PostScript need to become aware of the new 
  1498.     capabilities and how to take advantage of them. 
  1499.  
  1500.     There are many good books on PostScript 2. (See Section 5, 
  1501.     ``Books''.) 
  1502.  
  1503.  
  1504. ~Subject: 7.3 Where can I find examples of PostScript code? 
  1505.  
  1506.     Many other books on PostScript make example PostScript code 
  1507.     available. ``Thinking in PostScript'', by Glenn Reid, is the only 
  1508.     book I know of that allows its examples to be freely distributed. 
  1509.     (See Section 5, ``Books''.) 
  1510.  
  1511.     All the examples in ``the blue book'' are available from the Adobe 
  1512.     file server (See Section 5, ``Books''.) 
  1513.  
  1514.     See the question ``How can I browse through PostScript programs?'' 
  1515.     in the section on utilities. 
  1516.  
  1517.  
  1518. ~Subject: 7.4 How do I get the physical size of a page? 
  1519.  
  1520.     The initial clipping path gives you the size of the imagable area. 
  1521.     Use ``clippath pathbbox'' to get these coordinates. If you must 
  1522.     know the size of the device's imageable area, use the sequence 
  1523.     ``gsave initclip clippath pathbbox grestore'', but this will 
  1524.     prevent an enclosing application from using the clippath to achieve 
  1525.     some special effects (such as multiple pages per page). 
  1526.  
  1527.  
  1528. ~Subject: 7.5 Why can't I do a pathforall after a charpath ? 
  1529.  
  1530.     (See Section 4, ``Fonts'', question ``Why are Adobe fonts 
  1531.     hidden?''.) 
  1532.  
  1533.  
  1534. ~Subject: 7.6 How do I center a string of text around a point? 
  1535.  
  1536.     Level 1 PostScript has two operators that can extract information 
  1537.     about the metrics of characters: ``stringwidth'' and ``charpath''. 
  1538.  
  1539.     The ``stringwidth'' operator returns the advance width of its 
  1540.     string operand. This is the distance the current point would be 
  1541.     moved by a ``show'' operation on the same string. ``stringwidth'' 
  1542.     returns two numbers on the stack, representing the x and y 
  1543.     components of the advance width. Usually the y component is zero 
  1544.     because most fonts are displayed along a horizontal line, moving 
  1545.     the current point only in the x direction. 
  1546.  
  1547.     Also note that the ``stringwidth'' operator includes any side 
  1548.     bearings in its result. It usually does not give an exact measure 
  1549.     of the area of the page that will be touched by its operand. 
  1550.  
  1551.     If all that an application requires is horizontal centering of a 
  1552.     long string of text, the result returned by ``stringwidth'' is 
  1553.     sufficient. A common technique is 
  1554.  
  1555.   
  1556.           x y moveto
  1557.           (string) dup stringwidth pop 2 div neg 0 rmoveto show
  1558.   
  1559.     (This code makes the assumption that the y component of advance 
  1560.     width is irrelevant.) 
  1561.  
  1562.     The ``charpath'' operator extracts the graphic shapes of its string 
  1563.     operand and appends them to the current path in the graphic state. 
  1564.     These shapes can then be processed by other PostScript operators. 
  1565.     To get the actual size of the area touched by a character a simple 
  1566.     approach is 
  1567.  
  1568.   
  1569.           gsave
  1570.           newpath
  1571.           0 0 moveto
  1572.           (X) true charpath flattenpath pathbbox
  1573.           grestore
  1574.   
  1575.     This code places four numbers on the stack, representing the 
  1576.     coordinates of the lower left and upper right corners of the 
  1577.     bounding box enclosing the character ``X'' rendered with the 
  1578.     current point at (0,0). 
  1579.  
  1580.     There are two things to be careful about when using the code shown 
  1581.     above: 
  1582.  
  1583.  
  1584.  
  1585.    1. There are severe limits on the size of the string operand, 
  1586.       related to the limit on the number of elements in a graphic path. 
  1587.       The PostScript Language Reference Manual recommends taking 
  1588.       ``charpath''s one character at a time. 
  1589.  
  1590.  
  1591.    2. If user space is rotated or skewed with respect to device space, 
  1592.       the result from ``pathbbox'' may be larger than expected; 
  1593.       ``pathbbox'' returns a rectangle oriented along the user space 
  1594.       coordinate axes, which fully encloses a (possibly smaller) 
  1595.       rectangle oriented along the coordinate axes of device space. If 
  1596.       user space is rotated at an integer multiple of 90 degrees these 
  1597.       two rectangles will be the same, otherwise the rectangle in user 
  1598.       space will be larger. 
  1599.  
  1600.     So, to center text vertically one must get the bounding boxes of 
  1601.     all the characters in the string to be displayed, find the minimum 
  1602.     and maximum y coordinate values, and use half the distance between 
  1603.     them to displace the text vertically. 
  1604.  
  1605.     If an application does this repeatedly, it would be wise to store 
  1606.     the bounding boxes in an array indexed by character code, since 
  1607.     ``charpath'' is a slow operation. 
  1608.  
  1609.     Font metric information is available outside of a PostScript 
  1610.     printer in font metrics files, available from Adobe. A program 
  1611.     generating PostScript output can obtain metrics from these files 
  1612.     rather than extracting the metrics in the printer. 
  1613.  
  1614.  
  1615. ~Subject: 7.7 How can I concatenate two strings together? 
  1616.  
  1617.   
  1618.   %% string1 string2 append string
  1619.   % Function: Concatenates two strings together.
  1620.   /append {
  1621.            2 copy length exch length add  % find the length of the new.
  1622.            string dup     % string1 string2 string string
  1623.            4 2 roll       % string string string1 string2
  1624.            2 index 0 3 index
  1625.            % string string string1 string2 string 0 string1
  1626.            putinterval    % stuff the first string in.
  1627.            % string string string1 string2
  1628.            exch length exch putinterval
  1629.   } bind def
  1630.   
  1631.  
  1632. ~Subject: 7.8 What do I do when I get stack overflow/underflow? 
  1633. |
  1634. |   These errors are among the most common in PostScript. 
  1635. |
  1636. |   When I get a stack overflow, that is usually a sign that a routine 
  1637. |   is leaving an object on the stack. If this routine gets called 2000 
  1638. |   times, it leaves 2000 objects on the stack, which is too many. 
  1639. |
  1640. |   When I get a stack underflow, that is a sign that either: (A) one 
  1641. |   of the routines in the program doesn't work, and never has or (B) 
  1642. |   one of the routines in the program works, but expects to be called 
  1643. |   with some arguments left on the stack. 
  1644. |
  1645. |   There is no such thing as a PostScript debugger right now. For now, 
  1646. |   the best that you can do to debug your program is to put in lots of 
  1647. |   print statements. Learn to use the PostScript pstack command, and 
  1648. |   use an online interpreter so you don't have to run to the printer 
  1649. |   for each debugging cycle. 
  1650. |
  1651. |   Use an error handler to learn more about what exactly is happening 
  1652. |   when your program crashes. (see Section 12, ``PostScript 
  1653. |   Interpreters and Utilities'') 
  1654. |
  1655. |   If your code has never worked yet (i.e. you are still writing it) 
  1656. |   then I find that it helps to put little comments in the margin 
  1657. |   about the state of the stack. Like this: 
  1658. |
  1659. |  
  1660. |         Heart pathbbox             % lowerx lowery upperx uppery
  1661. |         exch 4 -1 roll             % lowery uppery upperx lowerx
  1662. |  
  1663. |  
  1664. |   I generally put these comments in originally, and then take them 
  1665. |   out when the program works. Maybe this is a bad practice, in case I 
  1666. |   ever want to go back and look at the code to modify it!! 
  1667.  
  1668.  
  1669. ~Subject: 7.9 The Obfuscated PostScript Contest 
  1670.  
  1671.     Alena Lacova and Jonathan Monsarrat are running an Obfuscated 
  1672.     PostScript Contest that will end on January 10th. 
  1673.  
  1674.     For information about the contest, write jgm@cs.brown.edu or ftp 
  1675.     the rules from wilma.cs.brown.edu:pub/postscript/rules.ps or 
  1676.     rules.txt. 
  1677.  
  1678. ~Subject: 8 Computer-specific PostScript 
  1679.  
  1680.     This section describes PostScript information specific to a 
  1681.     particular type of computer or operating system. 
  1682.  
  1683.  
  1684. ~Subject: 8.1 Sun Workstations 
  1685.  
  1686.     What is NeWS? 
  1687.  
  1688.     NeWS is Sun Microsystems PostScript-based window system for the Sun 
  1689.     Workstation. NeWS was a project within Sun (started around 1985) to 
  1690.     create a window system to supplant SunView (a very successful 
  1691.     kernel-based window system). NeWS is a client-server model window 
  1692.     system (like X) but among many of NeWS novel features was the use 
  1693.     of PostScript as the language to describe the appearance of objects 
  1694.     on the screen. Because there are few ways to design a knee joint, 
  1695.     NeWS has many features in common with Display PostScript, but NeWS 
  1696.     predates Adobe Display PostScript and was neither connected with 
  1697.     Adobe Display PostScript nor endorsed by Adobe. NeWS is not an 
  1698.     Adobe product, nor is it a Sun/Adobe joint venture. 
  1699.  
  1700.     NeWS had the potential to become a world-class window system had 
  1701.     not a coalition of computer vendors ganged together to endorse the 
  1702.     X window system from MIT, sending Sun into a frenzy to support both 
  1703.     X and NeWS in the same window server. 
  1704.  
  1705.     One respected engineer from DEC remarked they all feared Sun would 
  1706.     ignore the industry X coalition and go on to make NeWS a standard. 
  1707.     They were overjoyed when Sun reacted by taking on X and merging it 
  1708.     with NeWS, causing additional work which made it harder for Sun to 
  1709.     make progress with NeWS. oAlso it made X the de facto standard; 
  1710.     whether or not this is a good thing depends on who you talk to. 
  1711.  
  1712.     As of October 1992, Sun management signed a deal with Adobe to 
  1713.     adopt Display PostScript for the Sun. The future of NeWS is still 
  1714.     undecided (but it looks bad). 
  1715.  
  1716.     And how does PostScript run on them? 
  1717.  
  1718.     PostScript runs on NeWS. Due to lack of support from Sun 
  1719.     management, NeWS never made it as a fully-compliant PostScript 
  1720.     interpreter. There were incompatibilities between the NeWS 
  1721.     PostScript interpreter and ``official'' PostScript interpreters as 
  1722.     defined by Adobe and the Apple LaserWriter family of printers, such 
  1723.     that many PostScript files which would print fine on a LaserWriter 
  1724.     would not render under NeWS. The most critical incompatibility was 
  1725.     the lack of support for Adobe Type 1 fonts, Sun having gone with 
  1726.     their own font format known as F3. Given the NeWS PostScript 
  1727.     interpreter was not even PostScript Level One compliant, the 
  1728.     chances of bringing NeWS to Level Two compliance was remote, 
  1729.     lending further to NeWS decline. 
  1730.  
  1731.  
  1732. ~Subject: 8.2 IBM PC 
  1733.  
  1734.     You can find nenscript for OS/2 1.x--2.0 and MSDOS on 
  1735.     ftp-os2.nmsu.edu in pub/uploads/nensc113.zip. 
  1736.  
  1737. |    There are rumors that Word Perfect and Microsoft Word don't produce 
  1738. |    ``clean'' PostScript that follows the DSC conventions (See Section 
  1739. |    9, ``Encapsulated PostScript''). This means that a lot of 
  1740. |    PostScript utilities like Ghostview and psnup, etc., that require 
  1741. |    the DSC conventions, will not work on them. 
  1742. |
  1743. |    Creating a PostScript file from MS Word 
  1744. |
  1745. |    Install the LaserWriter driver that comes with Windows.In the 
  1746. |    printer setup, select a PostScript printer. Then click on the setup 
  1747. |    button to get that pop-up. Then clik the Options button. Then 
  1748. |    select the print to Encapsulated PostScript File. If you don't 
  1749. |    specify a file name, Word will prompt you for one when you tell it 
  1750. |    to print. 
  1751. |
  1752. |    When printing Microsoft Windows files that have been captured on a 
  1753. |    PC's LPT port, you mostly need to define two ctrl-d's in a row as 
  1754. |    well to remove all of them in the document: 
  1755. |
  1756. |  
  1757. |  (\004\004) cvn \{\} def
  1758.   
  1759.  
  1760. ~Subject: 8.3 Apple Macintosh 
  1761.  
  1762.     For more details about printing with the Macintosh, read the 
  1763.     comp.sys.mac.apps FAQ. 
  1764.  
  1765.     How can I convert a PostScript file created with a UNIX program to 
  1766.     the Mac? 
  1767.  
  1768.     A way that is clumsy, but works, is this: 
  1769.  
  1770.  
  1771.  
  1772.    1. Display the UNIX-based PostScript file on screen 
  1773.  
  1774.  
  1775.    2. Use window dumping facility to get a bitmap file 
  1776.  
  1777.  
  1778.    3. Convert the above bitmap file to TIFF format and then export it 
  1779.       to Adobe Illustrator on the Mac. 
  1780.  
  1781.     The PostScript section of the FAQ for the Macintosh newsgroup 
  1782.     comp.sys.mac.app (maintained by Elliotte Harold) answers the 
  1783.     following questions: 
  1784.  
  1785.  
  1786.  
  1787.     * How do I make a PostScript file? 
  1788.  
  1789.  
  1790.     * How do I print a PostScript file? 
  1791.  
  1792.  
  1793.     * Why won't my PostScript file print on my mainframe's printer? 
  1794.  
  1795.       Full documentation of this process provided with a utility called 
  1796.       macps. 
  1797.  
  1798.  
  1799.     * Why are my PostScript files so big? 
  1800.  
  1801.  
  1802. ~Subject: 9 Encapsulated PostScript 
  1803.  
  1804.  
  1805. ~Subject: 9.1 What is Encapsulated PostScript? 
  1806.  
  1807. |   Encapsulated PostScript (EPS) is a standard format for importing 
  1808.     and exporting PostScript language files in all environments. It is 
  1809.     usually a single page PostScript language program that describes an 
  1810.     illustration. The purpose of the EPS file is to be included as an 
  1811.     illustration in other PostScript language page descriptions. The 
  1812.     EPS file can contain any combination of text, graphics, and images. 
  1813.     An EPS file is the same as any other PostScript language page 
  1814.     description, with some restrictions. 
  1815.  
  1816.     EPS files can optionally contain a bitmapped image preview, so that 
  1817.     systems that can't render PostScript directly can at least display 
  1818.     a crude representation of what the graphic will look like. There 
  1819.     are three preview formats: Mac (PICT), IBM (tiff), and a platform 
  1820.     independent preview called EPSI. 
  1821.  
  1822.     An EPS file must be a conforming file, that is, it must conform to 
  1823.     the Adobe Document Structuring Conventions (DSC). At a minimum, it 
  1824.     must include a header comment,%!PS-Adobe-3.0 EPSF-3.0, and a 
  1825.     bounding box comment,%%BoundingBox: llx lly urx ury, that 
  1826.     describes the bounds of the illustration. 
  1827.  
  1828.     (The specification does not require the EPSF version, but many 
  1829.     programs will reject a file that does not have it.) 
  1830.  
  1831.     The EPS program must not use operators that initialize or 
  1832.     permanently change the state of the machine in a manner that cannot 
  1833.     be undone by the enclosing application's use of save and restore 
  1834.     (eg. the operators starting with ``init'' like initgraphics). As a 
  1835.     special case, the EPS program may use the showpage operator. The 
  1836.     importing application is responsible for disabling the normal 
  1837.     effects of showpage. 
  1838.  
  1839.     The EPS program should make no environment-sensitive decisions (the 
  1840.     importing application may be trying to attain some special effect, 
  1841.     and the EPS program shouldn't screw this up), although it can use 
  1842.     some device-dependent tricks to improve appearance such as a 
  1843.     snap-to-pixel algorithm. 
  1844.  
  1845.     The complete EPS specification is available from Adobe (see the 
  1846.     section on Adobe). 
  1847.  
  1848.     An optional component of an EPS file is a ``preview'' image of the 
  1849.     file's content. The preview image is a bitmapped representation of 
  1850.     the image which may be displayed by programs using the EPS file 
  1851.     without having to actually interpret the PostScript code. 
  1852.  
  1853.     The recommended form for a preview image is ``Interchange'' format 
  1854.     and is described fully in the ``red book'', second edition. 
  1855.     Interchange format represents the image as a series of hex strings 
  1856.     placed in the EPS file as PostScript comments. The entire file 
  1857.     remains an ASCII file. 
  1858.  
  1859.     A variation of EPS embeds the preview image and PostScript text in 
  1860.     a binary file which contains a header and the preview image in 
  1861.     either a TIFF or MetaFile format. The header defines where in the 
  1862.     file each section (EPS, TIFF, or MetaFile) starts and ends. On the 
  1863.     Macintosh, the preview is stored as a PICT in the file's resource 
  1864.     fork. 
  1865.  
  1866. ~Subject: 9.2 What are EPSI and EPSF? 
  1867. |
  1868. |   EPSI is EPS with a device independent bitmap preview. EPSI is an 
  1869. |   all ASCII (no binary data or headers) version of EPS. EPSI provides 
  1870. |   for a hexadecimal encoded preview representation of the image that 
  1871. |   will be displayed or printed. 
  1872. |
  1873. |   EPSF is a version of EPS with a TIFF preview instead of a bitmap 
  1874. |   preview. 
  1875.  
  1876.  
  1877. ~Subject: 9.3 How do I convert PostScript to EPS? 
  1878.  
  1879.     To convert from PostScript to EPS, one must guarantee that the 
  1880.     PostScript file meets the above requirements. If the actual program 
  1881.     conforms to the programming requirements, then one can simply add 
  1882.     the required comments at the top of the file saying that the file 
  1883.     is EPS and giving its BoundingBox dimensions. 
  1884.  
  1885.     Optional comments include font usage (%%DocumentFonts: or%% 
  1886.     DocumentNeededResources: font), EPSI preview comments (%% 
  1887.     Begin(End)Preview:) extensions (%%Extensions:) and language 
  1888.     level (%%LanguageLevel:). 
  1889.  
  1890.     There are some operators that should not be used within an EPS 
  1891.     file: 
  1892.  
  1893.   
  1894.           banddevice     cleardictstack   copypage     erasepage
  1895.           exitserver     framedevice      grestoreall  initclip
  1896.           initgraphics   initmatrix       quit         renderbands
  1897.           setglobal      setpagedevice    setshared    startjob
  1898.   
  1899.     These also include operators from statusdict and userdict operators 
  1900.     like legal, letter, a4, b5, etc. 
  1901.  
  1902.     There are some operators that should be carefully used: 
  1903.   
  1904.           nulldevice     setgstate        sethalftone  setmatrix
  1905.           setscreen      settransfer      undefinefont
  1906.   
  1907.     To convert a PostScript file to EPS format, you must edit the file 
  1908.     using a text editor or word processor to add lines that will define 
  1909.     the file as an EPS-format file. 
  1910.  
  1911.  
  1912.  
  1913.    1. Using your normal method of printing, print the PostScript file 
  1914.       to a PostScript printer. You can choose to view it on the screen 
  1915.       instead, but keep in mind that all the below distance 
  1916.       measurements assume that you are printing on a normal-sized piece 
  1917.       of paper. 
  1918.  
  1919.       NOTE: If the PostScript image does not get displayed properly, it 
  1920.       probably will not work either once you have converted it to EPS 
  1921.       format. Correct the PostScript program so that it works before 
  1922.       you convert it to EPS format. 
  1923.  
  1924.  
  1925.    2. Use a tool (see below) to find the bounding box, which shows how 
  1926.       much space the PostScript image occupies when printed. You 
  1927.       specify the dimensions of the bounding box when you convert the 
  1928.       PostScript file to EPS format. 
  1929.  
  1930.  
  1931.    3. If you don't have a bounding box tool, you can just use a ruler 
  1932.       and draw one on your printout. With two horizontal lines and two 
  1933.       vertical lines, draw a box around the image that includes the 
  1934.       entire image while minimizing white space. 
  1935.  
  1936.       This box represents your bounding box. You may want to leave a 
  1937.       small amount of white space around the image as a precautionary 
  1938.       measure against minor printing problems, such as paper stretching 
  1939.       and paper skewing. 
  1940.  
  1941.  
  1942.    4. Measure distance ``a'' from the lower-left corner of the image to 
  1943.       the left edge of the paper. 
  1944.  
  1945.  
  1946.    5. Write the measurement in points. If your ruler does not show 
  1947.       points, calculate the total number of points: 1 inch = 72 points, 
  1948.       1 cm = 28.3 points, and 1 pica = 12 points. Designate this 
  1949.       measurement as ``measurement a.'' 
  1950.  
  1951.  
  1952.    6. Measure distance ``b'' from the lower-left corner of the image to 
  1953.       the bottom edge of the paper. 
  1954.  
  1955.       Designate this measurement in points as ``measurement b.'' 
  1956.  
  1957.  
  1958.    7. Measure distance ``c'' from the upper-right corner of the image 
  1959.       to the left edge of the paper. 
  1960.  
  1961.       Designate this measurement in points as ``measurement c.'' 
  1962.  
  1963.  
  1964.    8. Measure distance ``d' from the upper-right corner of the image to 
  1965.       the bottom edge of the paper. 
  1966.  
  1967.       Designate this measurement in points as ``measurement d.'' 
  1968.  
  1969.  
  1970.    9. Using any text editor, open the PostScript file for editing. 
  1971.  
  1972.       You'll see several lines of text. These lines are the PostScript 
  1973.       description of the image. The lines at the top of the file are 
  1974.       the header. 
  1975.  
  1976.  
  1977.   10. Add these lines to, or modify existing lines in, the header (the 
  1978.       first group of lines in any PostScript file): 
  1979.  
  1980.     
  1981.             %!Adobe-2.0 EPSF
  1982.             %%Creator: name
  1983.             %%CreationDate: date
  1984.             %%Title: filename
  1985.             %%BoundingBox: a b c d
  1986.     
  1987.       Note: Make sure that the first line in the file is `` Also, do 
  1988.       not separate the header lines with a blank line space. The first 
  1989.       blank line that PostScript encounters tells it that the the next 
  1990.       line begins the body of the program. 
  1991.  
  1992.       For ``name,'' type your name or initials. For ``date,'' type 
  1993.       today's date using any format (for example, MM-DD-YY, MM/DD/YY, 
  1994.       July 5, 1987, and so on). For ``filename,'' type the name of the 
  1995.       PostScript file. After ``BoundingBox: ,'' type the measurements 
  1996.       you took in steps 3, 4, 5, and 6, separating each with a space: 
  1997.       ``a'' is the measurement from Step 3, ``b'' is the measurement 
  1998.       from Step 4, ``c'' is the measurement from Step 5, and ``d'' is 
  1999.       the measurement from Step 6. 
  2000.  
  2001.  
  2002.   11. Save the file in text-only format. 
  2003.  
  2004.     If you are interested in learning how to further edit your 
  2005.     PostScript files, these books are available at most bookstores: 
  2006.  
  2007.     Understanding PostScript Programming and the green book. 
  2008.  
  2009.     Encapsulated PostScript is discussed in Appendix C of the old red 
  2010.     book. The new red book has a lot of information about Encapsulated 
  2011.     PostScript. 
  2012.  
  2013.     There will be a technical note available from Adobe called 
  2014.     'Guidelines for Specific Operators' that will talk about why some 
  2015.     operators are prohibited and how to use the others. 
  2016.  
  2017.  
  2018. ~Subject: 9.4 How do I get the bounding box of a PostScript picture? 
  2019.  
  2020.     Use bbfig or epsinfo.ps. 
  2021.  
  2022.     Or if you would rather construct the bounding box by hand, use 
  2023.     Ghostview, which has a continuous readout of the mouse cursor in 
  2024.     the default user coordinate system. You simply place the mouse in 
  2025.     the corners of the figure and read off the coordinates. 
  2026.  
  2027. ~Subject: 10 About The Comp.Lang.PostScript FAQ (and Usenet Guide to 
  2028.     PostScript) 
  2029.  
  2030.  
  2031. ~Subject: 10.1 The PostScript FAQ: What is it? 
  2032.  
  2033.     The PostScript FAQ is a set of answers to frequently asked 
  2034.     questions (FAQs) that have appeared on the Usenet newsgroup 
  2035.     comp.lang.postscript. It is broken into many useful sections. 
  2036.  
  2037.     The Usenet Guide to PostScript is a larger set of help and answers 
  2038.     to PostScript questions, plus a tutorial for new users. It is still 
  2039.     in the process of being created. There is one file ``Exactly What 
  2040.     Does a Transformation Matrix Do?'', that is definitely not part of 
  2041.     the FAQ. Please send more! 
  2042.  
  2043.     I need help writing and revising answers for common questions 
  2044.     relating to PostScript. Almost all of the information in the 
  2045.     documents has been written by kind volunteers. The answers will be 
  2046.     published in either or both documents. A very long answer in the 
  2047.     Usenet Guide may be summarized, referred to briefly, or not 
  2048.     mentioned at all in the FAQ. 
  2049.  
  2050.  
  2051. ~Subject: 10.2 How to get the FAQ files 
  2052.  
  2053.     The FAQ is available by anonymous ftp to 
  2054.     wilma.cs.brown.edu:pub/comp.lang.postscript/ You can get it 
  2055.     formatted in plain text ASCII, LaTeX, or PostScript. 
  2056.  
  2057.     I would be happy to email a copy of the FAQ in any format to you if 
  2058.     you do not have FTP. 
  2059.  
  2060.  
  2061. ~Subject: 10.3 How to write a FAQ answer 
  2062.  
  2063.     I greatly appreciate your time and effort to help improve the 
  2064.     quality of the FAQ. Thank you for being willing to contribute! 
  2065.  
  2066.  
  2067.     * Please check to see if the topic is already in an FAQ. Perhaps 
  2068.       you really mean to submit a revision to an existing section. 
  2069.  
  2070.     * Start with a clear statement about what problem you are solving. 
  2071.  
  2072.     * Write for novice users, in ``tutorial format'', even if the 
  2073.       answer is meant for experienced programmers. 
  2074.  
  2075.     * Be specific when you make references. 
  2076.  
  2077.     * Be complete, and take the time to look over your draft and 
  2078.       revise. 
  2079.  
  2080.     * Answers should not be too wordy, unless you intend to write a 
  2081.       long answer for the Usenet Guide and have a shorter summary or a 
  2082.       pointer to the description placed in the FAQ. If you want to 
  2083.       write the summary yourself, thanks! 
  2084.  
  2085.     * Obviously, I cannot accept copyrighted material without 
  2086.       permission. Don't write the FAQ by paraphrasing from a 
  2087.       copyrighted book! 
  2088.  
  2089.  
  2090. ~Subject: 10.4 The FAQ can contain LaTeX and PostScript inserts 
  2091.  
  2092.     The FAQ is actually written with LaTeX, so feel free to submit with 
  2093.     that text formatting language. There is a PostScript version of the 
  2094.     FAQ also, so feel free to send along PostScript pictures to 
  2095.     include. 
  2096.  
  2097.  
  2098. ~Subject: 10.5 Revising the FAQ 
  2099.  
  2100.     Suggestions and comments are welcomed. My favorite way of receiving 
  2101.     a change suggestion is if you make a copy of the FAQ, edit the 
  2102.     copy, and mail me the modification, or a context diff (include the 
  2103.     version number). 
  2104.  
  2105.  
  2106. ~Subject: 10.6 How to submit new information 
  2107.  
  2108.     If you know something that you think is worthwhile to be put in a 
  2109.     FAQ, definitely send it to me! 
  2110.  
  2111.     Don't hold back if your information is very specific. If there's 
  2112.     too much information to post I will archive it at an ftp site and 
  2113.     place a pointer to it in the FAQ. 
  2114.  
  2115.  
  2116. ~Subject: 10.7 How to add a program description to the FAQ index 
  2117.  
  2118.     If the program is original, please send it to me, or tell me where 
  2119.     I can get it. Please put your name and email address at the top of 
  2120.     each file. Your program will be doubly useful if you clean up the 
  2121.     program so that other people can use it as an example to learn. 
  2122.  
  2123.     If the program was written by someone else, please send me just the 
  2124.     title, description, and where to get it. I may already have it. 
  2125.  
  2126.     For programs the FAQ needs to know: 
  2127.  
  2128.  
  2129.     * What is the name of the program? 
  2130.  
  2131.     * What does it claim to do, and does it do it well? Is it worth 
  2132.       using? 
  2133.  
  2134.     * Where is it available? What ftp sites can I get it from? 
  2135.  
  2136.     * How much does it cost? Is it free? 
  2137.  
  2138.     * What kinds of computers does it run on? 
  2139.  
  2140.     * Who is the author and does the author give an email address? 
  2141.  
  2142.     * Does it handle PostScript 2? 
  2143.  
  2144.     If the program is a PostScript interpreter, then the FAQ also needs 
  2145.     to know: 
  2146.  
  2147.  
  2148.     * Does it let you go backwards one page? 
  2149.  
  2150.     * Does it display the number of pages in the document? 
  2151.  
  2152.     * Does it let you print PostScript to a non-PostScript printer? 
  2153.  
  2154.     * What formats can it convert to? 
  2155.  
  2156.  
  2157. ~Subject: 10.8 How to add a book description to the FAQ 
  2158.  
  2159.     For books the FAQ needs to know: 
  2160.  
  2161.  
  2162.     * What is the name of the book or document? 
  2163.  
  2164.     * What does it claim to do, and does it do it well? Is it worth 
  2165.       using? 
  2166.  
  2167.     * Can I get it on-line? 
  2168.  
  2169.     * Who wrote it? Does the author give an email address? 
  2170.  
  2171.     * Who is the publisher, and what is the copyright date? 
  2172.  
  2173.     * Does the publisher list an address and phone number or fax 
  2174.       number? 
  2175.  
  2176.     * What is the ISBN number of the book? 
  2177.  
  2178.     * What is the library call number of the book? 
  2179.  
  2180.     * How much does the book cost? 
  2181.  
  2182.     * Does it cover PostScript 2? 
  2183.  
  2184.     * Are coding examples from the book available by email or anonymous 
  2185.       ftp? 
  2186.  
  2187.     * Do the authors sell the coding examples on a diskette? 
  2188.  
  2189.  
  2190. ~Subject: 10.9 Questions that need answers 
  2191.  
  2192.  
  2193.  
  2194.    1. Where are ftp sites that have PostScript freeware? 
  2195.  
  2196.  
  2197.    2. What vendors sell fonts for PostScript printers? Where are the 
  2198.       free ftp sites for them? 
  2199.  
  2200.  
  2201.    3. Are there any free encapsulated PostScript converters? 
  2202.  
  2203.  
  2204.    4. What is the charter for comp.lang.postscript? 
  2205.  
  2206.  
  2207.    5. How do I make a downloaded font (ie: PFA) persistent? 
  2208.  
  2209.  
  2210.    6. What questions should the FAQ have? 
  2211.  
  2212.  
  2213.    7. What book information is wrong or missing in the FAQ? 
  2214.  
  2215.  
  2216.    8. What program information is wrong or missing in the FAQ? 
  2217.  
  2218.  
  2219.    9. What ftp site have good examples of PostScript code? 
  2220.  
  2221.  
  2222. From: jgm@cs.brown.edu (Jonathan Monsarrat)
  2223. Date: Tue, 1 Dec 1992 05:50:00 GMT
  2224. Newsgroups: comp.lang.postscript,news.answers
  2225. Subject: PostScript monthly FAQ v2.01 11-30-92 [11 of 12]
  2226.  
  2227. Archive-name: postscript-faq/part11
  2228. Last-modified: 1992/11/30
  2229. Version: 2.01
  2230.  
  2231.                               -- PostScript -- 
  2232.  
  2233.                             Answers to Questions 
  2234.  
  2235.                    (the comp.lang.postscript FAQ v2.01) 
  2236.  
  2237.                                Jon Monsarrat 
  2238.  
  2239.                               jgm@cs.brown.edu 
  2240.  
  2241.  
  2242.  
  2243.  
  2244.  
  2245.  
  2246.                      This FAQ is formatted as a digest. 
  2247.  
  2248.                 Most news readers can skip from one question 
  2249.  
  2250.                      to the next by pressing control-G. 
  2251.  
  2252.  
  2253.     Changes since the last version are marked with a '|' in the table 
  2254.     of contents and in the sections in the text-only format of the FAQ. 
  2255.  
  2256.     Please help fix the FAQ! All comments should be mailed to 
  2257.     jgm@cs.brown.edu. My favorite way to receive a change suggestion is 
  2258.     when it is accompanied by a section of the FAQ that is edited and 
  2259.     mailed to me verbatim as an example. If you would like to 
  2260.     contribute, please read the section ``about the FAQ'' first. Thank 
  2261.     you! 
  2262.  
  2263.     Books and programs are referred to by name only. See the 
  2264.     appropriate sections for full information. 
  2265.  
  2266. ~Subject: 11 About PostScript 2 
  2267.  
  2268.  
  2269. ~Subject: 11.1 What printers run PostScript 2? 
  2270.  
  2271.  
  2272.  
  2273.     * Apple LaserWriter IIf 
  2274.  
  2275.  
  2276.     * Apple LaserWriter IIg 
  2277.  
  2278.  
  2279.     * Apple Personal LaserWriter NTR 
  2280.  
  2281.       Apple sells an upgrade to the IINTX to turn it into a IIf/IIG for 
  2282.       instance. 
  2283.  
  2284.  
  2285.     * Compaq PAGEMARQ 20 
  2286.  
  2287.  
  2288.     * Compaq PAGEMARQ 15 
  2289.  
  2290.  
  2291.     * Data Products LZR 960 
  2292.  
  2293.  
  2294.     * Data Products LZR 1560 
  2295.  
  2296.  
  2297.     * Hewlett-Packhard PostScript CartridgePlus, which works with the 
  2298.       HP Laserjet III, IIID, and IIIP. 
  2299.  
  2300.  
  2301.     * NEC SilentWriter2, model 95 
  2302.  
  2303.  
  2304.     * Tektronix Phaser III PXi 
  2305.  
  2306.  
  2307.     * Tektronix Phaser II PXi 
  2308.  
  2309.  
  2310.     * Tektronix Phaser II PXe 
  2311.  
  2312.  
  2313.     * Tektronix Phaser IISD 
  2314.  
  2315.  
  2316.     * Texas Instruments microLaser Turbo 
  2317.  
  2318.  
  2319.     * Texas Instruments microLaser XL Turbo 
  2320.  
  2321.     This rest of file contains a description of PostScript 2 written by 
  2322.     Carl Orthlieb from Adobe. 
  2323.  
  2324.  
  2325. ~Subject: 11.2 Introduction 
  2326.  
  2327.     PostScript Level 2, the first major new release of PostScript 
  2328.     software since its introduction, is a unification and enhancement 
  2329.     of the PostScript language based on the needs voiced by users of 
  2330.     PostScript printers and Display PostScript(R) workstations, 
  2331.     Independent Software Vendors (ISVs), and Original Equipment 
  2332.     Manufacturers (OEMs). PostScript Level 2 contains a number of 
  2333.     performance enhancements, is easier for software developers to use, 
  2334.     and contains important new functionality such as device-independent 
  2335.     color, forms handling and patterns support. 
  2336.  
  2337.  
  2338. ~Subject: 11.3 What is PostScript Level 2? 
  2339.  
  2340.     First, let's look at the current state of the PostScript language. 
  2341.     The baseline of the language is defined by the PostScript Language 
  2342.     Reference Manual, also known as the "red book." The red book 
  2343.     defines the basic PostScript language imaging model functionality 
  2344.     for line art, sampled images, text, and the RGB color model. Since 
  2345.     its introduction in 1985, the PostScript language has been 
  2346.     considerably extended for greater programming power, efficiency, 
  2347.     and flexibility. 
  2348.  
  2349.     Typically, these language extensions have been designed to adapt 
  2350.     the PostScript language to new imaging technologies or system 
  2351.     environments. While these extensions have introduced new 
  2352.     functionality and flexibility to the language, the basic imaging 
  2353.     model remains unchanged. The principal language extensions are: 
  2354.  
  2355.  
  2356.  
  2357.     Color: 
  2358.       The color extensions provide a cyan-magenta-yellow-black (CMYK) 
  2359.       color model for specifying colors and a colorimage operator for 
  2360.       painting sampled images. They also include additional rendering 
  2361.       controls for color output devices. 
  2362.  
  2363.  
  2364.     Composite fonts: 
  2365.       The composite font extensions enhance the basic font facility to 
  2366.       support character sets that are very large or have complex 
  2367.       requirements for encoding or character positioning. 
  2368.  
  2369.  
  2370.     Display PostScript: 
  2371.       The Display PostScript system enables workstation applications to 
  2372.       use the PostScript language and imaging model for managing the 
  2373.       appearance of the display. Some of the extensions are specialized 
  2374.       to interactive display applications, such as concurrent execution 
  2375.       and support for windowing systems. Other extensions are more 
  2376.       general and are intended to improve performance or programming 
  2377.       convenience. 
  2378.  
  2379.     When Adobe decided to add additional functionality to the 
  2380.     PostScript language, we did not want to add the functionality in a 
  2381.     piecemeal fashion and have it exist in some devices but not others. 
  2382.     This makes life difficult for independent software vendors (ISVs) 
  2383.     who write PostScript language programs. PostScript Level 2 
  2384.     integrates the original PostScript language, all previous language 
  2385.     extensions, and new language features into the core PostScript 
  2386.     language imaging model. PostScript Level 2 ensures application 
  2387.     developers consistent functionality across all Level 2 devices. 
  2388.     When an application images to a Level 2 device, it can be assured 
  2389.     that a wide range of features will exist on that device and that 
  2390.     these features can be exploited to their fullest for increased 
  2391.     performance and functionality. 
  2392.  
  2393.  
  2394. ~Subject: 11.4 What are the features of PostScript Level 2? 
  2395.  
  2396.     PostScript Level 2 consolidates all of the current language 
  2397.     extensions into one unified language and adds many new features. It 
  2398.     is also upward compatible with the current generation of PostScript 
  2399.     devices. Here is a brief list of what comprises PostScript Level 2: 
  2400.  
  2401.  
  2402.  
  2403.     * Existing PostScript language 
  2404.  
  2405.  
  2406.     * Color extensions 
  2407.  
  2408.  
  2409.     * Composite font extensions 
  2410.  
  2411.  
  2412.     * Display PostScript extensions 
  2413.  
  2414.  
  2415.     * Improved memory management 
  2416.  
  2417.  
  2418.     * CIE-based device-independent color 
  2419.  
  2420.  
  2421.     * Improved printer hardware features support 
  2422.  
  2423.  
  2424.     * Data and image compression and decompression 
  2425.  
  2426.  
  2427.     * Optimized graphics and text operators from the 
  2428.  
  2429.  
  2430.     * Display PostScript system 
  2431.  
  2432.  
  2433.     * New halftoning algorithms 
  2434.  
  2435.  
  2436.     * Forms support 
  2437.  
  2438.  
  2439.     * Patterns support 
  2440.  
  2441.  
  2442.     * Binary language encodings 
  2443.  
  2444.  
  2445.     * ATM font rendering technology 
  2446.  
  2447.  
  2448. ~Subject: 11.5 What are the color extensions to the PostScript language? 
  2449.  
  2450.     The color extensions were added to the language in 1988 to provide 
  2451.     more complete color functionality. With the original PostScript 
  2452.     language, color could be specified using the red-green-blue (RGB) 
  2453.     and hue-saturation-brightness (HSB) color models. 
  2454.  
  2455.     The color extensions include cyan-magenta-yellow-black (CMYK) color 
  2456.     model, black generation and undercolor removal functions, screen 
  2457.     and transfer functions for four separate color components, and a 
  2458.     colorimage operator for rendering color sampled images. The color 
  2459.     extensions are currently found in PostScript color printers from 
  2460.     Canon, QMS, Oce, and NEC as well as all implementations of the 
  2461.     Display PostScript system. 
  2462.  
  2463.  
  2464. ~Subject: 11.6 Why would you want the CMYK color extensions in a black and 
  2465.     white printer? 
  2466.  
  2467.     In a nut-shell, compatibility between black-and-white and color 
  2468.     Level 2 devices. 
  2469.  
  2470.     Today, ISVs must handle PostScript color printers differently. For 
  2471.     example, current monochrome laser printers does not contain the 
  2472.     CMYK color extensions, and as a result PostScript language programs 
  2473.     must emulate this functionality, which results in slower 
  2474.     performance. All Level 2 implementations will include the CMYK 
  2475.     color extensions as standard. 
  2476.  
  2477.  
  2478. ~Subject: 11.7 What are the composite font extensions to the PostScript 
  2479.     language? 
  2480.  
  2481.     The composite font technology is a general solution that extends 
  2482.     the basic PostScript language font mechanism to enable the encoding 
  2483.     of very large character sets and handle non-horizontal writing 
  2484.     modes. 
  2485.  
  2486.     A Type 1 PostScript font has room for encoding only 256 distinct 
  2487.     characters. A typical Japanese font has over 7,000 Kanji, katakana 
  2488.     and hiragana characters. The composite font technology allows you 
  2489.     to create one ``composite'' font that is made up from any number of 
  2490.     ``base'' fonts. In addition, the composite font technology allows 
  2491.     you to include two sets of metrics (character spacing details) in 
  2492.     the font: one for a horizontal-writing mode, and one for a 
  2493.     vertical-writing mode. 
  2494.  
  2495.  
  2496. ~Subject: 11.8 Why would you want the composite font extensions in a roman 
  2497.     printer? 
  2498.  
  2499.     This technology is currently implemented only in Japanese language 
  2500.     PostScript devices, but the composite font technology is a general 
  2501.     solution that applies to any language. It allows for the creation 
  2502.     of one composite font that combines two or more fonts. For example, 
  2503.     you may wish to combine a text font (such as Times-Roman) with a 
  2504.     special font (such as Zapf-Dingbats) and have all characters at 
  2505.     your disposal within a single font. 
  2506.  
  2507.  
  2508. ~Subject: 11.9 What are the Display PostScript Extensions to the PostScript 
  2509.     language? 
  2510.  
  2511.     The Display PostScript extensions address the needs of using the 
  2512.     PostScript language imaging model in a display environment. It 
  2513.     includes extensions to deal specifically with displays and 
  2514.     windowing systems as well as many optimized operators to increase 
  2515.     performance which is critical in an interactive display 
  2516.     environment. 
  2517.  
  2518.  
  2519. ~Subject: 11.10 Why would you want the Display PostScript extensions in a 
  2520.     printer? 
  2521.  
  2522.     Most of the functionality in PostScript Level 2 that comes from the 
  2523.     Display PostScript extensions result in improved performance. This 
  2524.     includes clipping, rectangle operators, and binary language 
  2525.     encoding to name a few. Each of the new Level 2 features that come 
  2526.     from the Display PostScript extensions are detailed later in this 
  2527.     document. 
  2528.  
  2529.     Another obvious reason is for compatibility between Display 
  2530.     PostScript applications and PostScript Level 2 printers. 
  2531.  
  2532.  
  2533. ~Subject: 11.11 Can you tell me more about the rest of the PostScript Level 2 
  2534.     features? 
  2535.  
  2536.     Sure. Here a brief overview of the important features and benefits 
  2537.  
  2538.     of PostScript Level 2: 
  2539.  
  2540.  
  2541. ~Subject: 11.12 Filters 
  2542.  
  2543.  
  2544.  
  2545.     * A filter transforms data as it is being read from or written to a 
  2546.       file. The language supports filters for ASCII encoding of binary 
  2547.       data, compression and decompression, and embedded subfiles. 
  2548.       Properly used, these filters reduce the storage and transmission 
  2549.       cost of page descriptions, especially ones containing sampled 
  2550.       images. Benefits: Reduced storage requirements, greater 
  2551.       performance. 
  2552.  
  2553.  
  2554.     * ASCII encoding of binary data: ASCII/85 (represent binary data in 
  2555.       ASCII format with only a 125 % expansion of data), and ASCII/HEX 
  2556.       (current method of representing binary data in ASCII format but 
  2557.       with a 200 % expansion of data). Benefits: Compact representation 
  2558.       of binary data in a portable ASCII representation. 
  2559.  
  2560.  
  2561.     * Compression and decompression filters: CCITT Group 3 & 4 
  2562.       (monochrome images), run-length encoding (monochrome and 
  2563.       grayscale images), LZW ( 2:1 compression of text files), DCT 
  2564.       (20-200:1 compression of color images using the proposed JPEG 
  2565.       standard). Benefits: Improved performance due to reduced 
  2566.       transmission times. PostScript files on disk can also be made 
  2567.       much smaller, saving disk space. 
  2568.  
  2569.  
  2570. ~Subject: 11.13 Binary Encoding 
  2571.  
  2572.     In addition to the standard ASCII encoding, the language syntax 
  2573.     includes two binary-encoded representations. These binary encodings 
  2574.     improve efficiency of generation, representation, and 
  2575.     interpretation. However, they are less portable than the ASCII 
  2576.     encoding and are suitable for use only in controlled environments. 
  2577.     Benefits: performance,z compactness. 
  2578.  
  2579.  
  2580. ~Subject: 11.14 Improved underlying implementation 
  2581.  
  2582.  
  2583.  
  2584.     * Improved font disk cache. We have improved the backup of the font 
  2585.       cache on printers with a hard disk. Font access methods for 
  2586.       reading the font back into RAM are more efficient. Also, the 
  2587.       management of the disk is improved, so it does not become 
  2588.       fragmented. Benefits: Performance, enhanced functionality. 
  2589.  
  2590.  
  2591.     * ATM font rendering technology. Benefits: Improved performance 
  2592.       (4-5 times faster in raw character building speed) and improved 
  2593.       quality (most evident at small point sizes and low resolutions). 
  2594.  
  2595.  
  2596. ~Subject: 11.15 Improved memory management system 
  2597.  
  2598.  
  2599.  
  2600.     * One pool of memory available for all resource needs (page image, 
  2601.       font cache, path storage, downloadable fonts, etc.). Memory 
  2602.       allocated dynamically to meet needs. In general, memory is more 
  2603.       efficiently shared among different uses and arbitrary memory 
  2604.       restrictions have been eliminated. Benefits: Eliminates arbitrary 
  2605.       memory restrictions for imaging of more complex graphics. 
  2606.  
  2607.  
  2608.     * Opportunistic memory management scheme. In the current system, 
  2609.       the PostScript language program must manage memory on a per page 
  2610.       basis. New memory management operators allow more flexibility for 
  2611.       programs to explicitly release unused memory resources by 
  2612.       removing individual entries from dictionaries and removing font 
  2613.       definitions in an order unrelated to the order in which they were 
  2614.       created. Benefits: More efficient use of available memory. 
  2615.  
  2616.  
  2617.     * Automatic memory reclamation. VM is reclaimed automatically for 
  2618.       composite objects that are no longer accessible, such as strings 
  2619.       used by the show operator. A ``garbage collector'' will 
  2620.       automatically reclaim other unused memory. Benefits: More 
  2621.       efficient use of available memory. 
  2622.  
  2623.  
  2624. ~Subject: 11.16 Optimized graphics operators 
  2625.  
  2626.  
  2627.  
  2628.     * Rectangle operators. New operators for filling, clipping and 
  2629.       stroking rectangles; all highly optimized. For example, rectfill 
  2630.       is 3 times faster than an equivalent moveto, lineto, lineto, 
  2631.       lineto, closepath, fill. Benefits: performance and convenience. 
  2632.  
  2633.  
  2634.     * Graphics state objects provide a fast way to switch between 
  2635.       graphics states, which define the current line weight, color, 
  2636.       font, etc. In existing printers, graphics states are stored on a 
  2637.       stack, so accessing an arbitrary graphics state is somewhat 
  2638.       cumbersome. With graphics state objects, the graphics state can 
  2639.       be associated with a name, and retrieved by simply requesting the 
  2640.       name. Benefits: Performance, convenience. 
  2641.  
  2642.  
  2643.     * Halftone specification. New halftone dictionaries provide a more 
  2644.       precise way of specifying the halftone dots, and makes switching 
  2645.       between halftone screens faster. (The spot function is not 
  2646.       reinterpreted.) Benefits: Performance, convenience, enhanced 
  2647.       functionality. 
  2648.  
  2649.  
  2650.     * User paths are self-contained procedures that consists entirely 
  2651.       of path construction operators and their coordinate operands. 
  2652.       User path operators perform path construction and painting as a 
  2653.       single operation; this is both convenient and efficient. There is 
  2654.       a user path cache to optimize interpretation of user paths that 
  2655.       are invoked repeatedly. Benefits: Performance, convenience. 
  2656.  
  2657.  
  2658.     * Stroke adjustment. For very thin lines, there is a trade-off 
  2659.       between perfect positioning and consistent line width. Depending 
  2660.       on the placement of such a line, it could end up being rendered 
  2661.       as either 1 or 2 pixels wide, which is a noticeable difference. 
  2662.       To account for this, PostScript language programs often include 
  2663.       logic to slightly alter the coordinates of lines for consistent 
  2664.       rendering. With automatic stroke adjustment the interpreter 
  2665.       performs this adjustment to ensure consistent widths. Doing it in 
  2666.       the interpreter rather than in the PostScript language program is 
  2667.       20 - 30 % faster. Benefits: Performance, convenience, improved 
  2668.       quality. 
  2669.  
  2670.  
  2671. ~Subject: 11.17 Optimized text operators 
  2672.  
  2673.  
  2674.  
  2675.     * The xyshow operator provides a more natural way for applications 
  2676.       to deal with individual character positioning. Allows 
  2677.       simultaneous track kerning, pair kerning, and justification. 
  2678.       Benefits: Performance, convenience. 
  2679.  
  2680.  
  2681.     * The selectfont operator optimizes switching between fonts. It 
  2682.       does the work of 3 Level 1 operators: findfont, scalefont, and 
  2683.       setfont and has been optimized by using a caching mechanism. 
  2684.       Benefits: Performance, convenience. 
  2685.  
  2686.  
  2687. ~Subject: 11.18 Forms 
  2688.  
  2689.  
  2690.  
  2691.     * A form is a self-contained description of any arbitrary graphics, 
  2692.       text, and sampled images that are to be painted multiple times on 
  2693.       each of several pages or several times at different locations on 
  2694.       a single page. 
  2695.  
  2696.  
  2697.     * With the new forms feature, you can define a base form whose 
  2698.       representation stays cached between pages, so only information 
  2699.       that changes between forms will need to be interpreted for each 
  2700.       page. The representation used to cache the form may vary from 
  2701.       device to device depending on the available resources, such as 
  2702.       memory and/or hard disk space. In some cases, the actual 
  2703.       rasterized form will be saved, in other cases, an intermediate 
  2704.       representation (such as a display list) may be saved. Benefits: 
  2705.       End-users will benefit by improved performance. 
  2706.  
  2707.  
  2708.     * This makes forms processing faster and provide a natural 
  2709.       framework for ISVs implementing a forms functionality in their 
  2710.       application. Benefits: Convenience for ISVs. 
  2711.  
  2712.  
  2713.     * Besides the traditional concept of ``forms,'' some other examples 
  2714.       of forms include: Letterhead, stationary, overhead presentation 
  2715.       backgrounds, repetitive symbols in a CAD drawing such as screws 
  2716.       (mechanical drawing) or windows (architectural drawing), complex 
  2717.       background blends in 35mm slides. Benefits: Enhanced 
  2718.       functionality and application of PostScript printers in a variety 
  2719.       of different environments. 
  2720.  
  2721.  
  2722. ~Subject: 11.19 Patterns 
  2723.  
  2724.  
  2725.  
  2726.     * The new pattern color space provides the ability to establish a 
  2727.       pattern as the current color. Subsequent use of operators such as 
  2728.       fill, stroke, and show apply ``paint'' that is produced by 
  2729.       replicating (or tiling) a small graphical figure called a pattern 
  2730.       cell at fixed intervals in x and y to cover the areas to be 
  2731.       painted. The appearance of a pattern cell is defined by a 
  2732.       PostScript language procedure, which can include any arbitrary 
  2733.       graphics, text, and sampled images. The shape of the pattern cell 
  2734.       need not be rectangular, and the spacing of tiles can differ from 
  2735.       the size of the pattern cell. Benefits: Enhanced functionality, 
  2736.       performance, convenience. 
  2737.  
  2738.  
  2739.     * For efficiency, the representation of the pattern cell may be 
  2740.       cached. When cached, the execution of the procedure that defines 
  2741.       the pattern need be done only once for the current pattern. The 
  2742.       pattern cache is similar to the font cache. Benefits: 
  2743.       Performance. 
  2744.  
  2745.  
  2746.     * Multiple colors can be specified in the pattern or the pattern 
  2747.       can be used as a mask to paint a color defined in some other 
  2748.       color space. Benefits: Enhanced functionality 
  2749.  
  2750.  
  2751.     * For display environments, this feature will allow patterns to be 
  2752.       represented in a resolution independent manner. Until now, 
  2753.       patterns have typically been represented by arrangements of 
  2754.       pixels. This resolution-dependent representation does not work 
  2755.       well when trying to image the pattern at a variety of different 
  2756.       resolutions. 
  2757.  
  2758.  
  2759. ~Subject: 11.20 Images 
  2760.  
  2761.     There are several enhancements to the facilities for painting 
  2762.     sampled images: use of any color space, 12-bit component values, 
  2763.     direct use of files as data sources, and additional decoding and 
  2764.     rendering options. Benefits: Convenience, performance, quality. 
  2765.  
  2766.  
  2767. ~Subject: 11.21 Composite Fonts 
  2768.  
  2769.  
  2770.  
  2771.     * Provides the basic machinery for non-Roman character sets. 
  2772.       Enables the encoding of very large character sets and 
  2773.       non-horizontal writing modes. Benefits: Enhanced functionality. 
  2774.  
  2775.  
  2776.     * Provides a page description language for international business. 
  2777.       Composite font technology makes printers more international. The 
  2778.       same font technology can be used worldwide, and will provide 
  2779.       support for companies that must work in today's international 
  2780.       business environment. Benefits: Enhanced functionality. 
  2781.  
  2782.  
  2783.     * Advantages not limited to foreign languages - also useful for 
  2784.       strictly Roman printers: allows the creation of a single 
  2785.       composite font that combines two or more fonts. For example, you 
  2786.       may wish to combine a textual font (such as Times-Roman) with a 
  2787.       graphical font (such as Zapf-Dingbats), and have all characters 
  2788.       at their disposal within a single font. Other uses of composite 
  2789.       fonts: IBM extended character set, and expert sets (such as Adobe 
  2790.       Garamond). Benefits: Enhanced functionality and increased 
  2791.       performance by minimizing switching between fonts. 
  2792.  
  2793.  
  2794. ~Subject: 11.22 New Color Spaces 
  2795.  
  2796.  
  2797.  
  2798.     * CMYK color model and support for color images. Enhanced 
  2799.       functionality. This will encourage more ISVs to use the color 
  2800.       operators, because the operators will be widely available (The 
  2801.       printer itself may not be able to print in color, but the 
  2802.       PostScript language program won't generate errors when the 
  2803.       operators for CMYK color are used.) 
  2804.  
  2805.  
  2806.     * PostScript Level 2 supports several device-independent color 
  2807.       spaces based on the CIE 1931 (XYZ)-space. CIE-based color 
  2808.       specification enables a page description to specify color in a 
  2809.       way that is related to human visual perception. The goal of the 
  2810.       CIE standard is that a given CIE-based color specification should 
  2811.       produce consistent results on different color output devices, 
  2812.       independent of variations in marking technology, ink colorants, 
  2813.       or screen phosphors. True device-independent color specification. 
  2814.       Improved color matching between devices. 
  2815.  
  2816.  
  2817.     * PostScript Level 2 supports three classes of color spaces: device 
  2818.       independent, special, and device dependent. 
  2819.  
  2820.     The following device independent color spaces are standard: 
  2821.  
  2822.     The CIEBasedABC color space is defined in terms of a two-stage, 
  2823.     non- linear transformation of the CIE 1931 (XYZ)-space. The 
  2824.     formulation of the CIEBasedABC color space models a simple zone 
  2825.     theory of color vision, consisting of a non-linear trichromatic 
  2826.     first stage combined with a non-linear opponent color second stage. 
  2827.     This formulation allows colors to be digitized with minimum loss of 
  2828.     fidelity; this is important in sample images. 
  2829.  
  2830.     Special cases of CIEBasedABC include a variety of interesting and 
  2831.     useful color spaces, such as the CIE 1931 (XYZ)-space, a class of 
  2832.     calibrated RGB spaces, a class of opponent color spaces such as the 
  2833.     CIE 1976 (L*a*b*)-space and the NTSC, SECAM, and PAL television 
  2834.     spaces. 
  2835.  
  2836.     The CIEBased A color space is a one-dimensional and usually 
  2837.     achromatic analog of CIEBasedABC. 
  2838.  
  2839.     The following special color spaces are standard: 
  2840.  
  2841.  
  2842.  
  2843.     * The Pattern color space enables painting with a ``color'' defined 
  2844.       as a pattern, a graphical figure used repeatedly to cover the 
  2845.       areas that are to be painted. See the discussion of patterns for 
  2846.       more information. 
  2847.  
  2848.  
  2849.     * The Indexed color space provides a way to map from small integers 
  2850.       to arbitrary colors in a different color space such as a device 
  2851.       independent color space. 
  2852.  
  2853.  
  2854.     * The Separation color space provides control over either the 
  2855.       production of a color separation or the application of a device 
  2856.       colorant, depending on the nature and configuration of the 
  2857.       device. 
  2858.  
  2859.     The following device dependent color spaces are standard: 
  2860.  
  2861.  
  2862.  
  2863.     * The DeviceGray color space is equivalent to the existing 
  2864.       PostScript language's gray color model. 
  2865.  
  2866.  
  2867.     * The DeviceRGB color space is equivalent to the existing 
  2868.       PostScript language's red-green-blue (RGB) color model. 
  2869.  
  2870.  
  2871.     * The DeviceCMYK color space is equivalent to the existing 
  2872.       PostScript language's cyan-magenta-yellow-black (CMYK) color 
  2873.       model. 
  2874.  
  2875.  
  2876. ~Subject: 11.23 New screening/halftoning technology 
  2877.  
  2878.  
  2879.  
  2880.     * Improved algorithms for determining the angles and frequencies 
  2881.       used for halftone screens. The improvements fall into two primary 
  2882.       categories: general improvements, and improvements specific to 
  2883.       color separations. 
  2884.  
  2885.  
  2886.     * General improvements: (1) The new algorithms yield a 10 % 
  2887.       improvement in the speed of the setscreen and image operators; 
  2888.       (2) Earlier version of PostScript software could produce halftone 
  2889.       screens only for certain angle and frequency combinations. Enough 
  2890.       of these combinations were available so that any requested screen 
  2891.       could be fairly well approximated by one of the available angle 
  2892.       and frequency combinations. In contrast, the improved halftoning 
  2893.       algorithms can provide as much as a ten-fold increase in the 
  2894.       number of angle-frequency combinations that are available, 
  2895.       depending on the device resolution and the available memory. 
  2896.       Benefits: Increased performance and higher quality halftone 
  2897.       screens. 
  2898.  
  2899.  
  2900.     * Improvements specific to color separations: An additional feature 
  2901.       is available that enables PostScript software to generate 
  2902.       extremely accurate screen angles and frequencies. The screens 
  2903.       produced by this method can achieve an angular accuracy of within 
  2904.       05 degrees or better, depending on such parameters as exact 
  2905.       screen angle requested, device resolution, and memory available 
  2906.       for use by the algorithm. Benefits: Extremely high-quality color 
  2907.       separations that approach the quality that previously was 
  2908.       available only from high-end, color electronic pre-press systems. 
  2909.  
  2910.  
  2911. ~Subject: 11.24 Improved printer support features 
  2912.  
  2913.  
  2914.  
  2915.     * Page device setup provides a device independent framework for 
  2916.       specifying the requirements of a page description and for 
  2917.       controlling both standard features, such as the number of copies, 
  2918.       and optional features, such as duplex printing, paper trays, 
  2919.       paper sizes, and other peripheral features. 
  2920.  
  2921.  
  2922.     * Applications developers will be able to write a single driver for 
  2923.       a variety of different PostScript printers. The same code can be 
  2924.       used to address printer specific features whether the features 
  2925.       exist in the printer or not. If the feature is not in the 
  2926.       printer, the application can decide how to best respond to the 
  2927.       lack of the feature. Benefits: Enhanced functionality. ISVs 
  2928.       benefit by having a more uniform method for accessing printer 
  2929.       specific features. End users benefit by having software that will 
  2930.       take advantage of their printer's features. 
  2931.  
  2932.  
  2933. ~Subject: 11.25 Interpreter parameters 
  2934.  
  2935.     Administrative operations, such as system configuration and 
  2936.     changing input-output device parameters, are now organized in a 
  2937.     more systematic way. Allocation of memory and other resources for 
  2938.     specific purposes is under software control. For example, there are 
  2939.     parameters controlling the maximum amount of memory to be used for 
  2940.     VM, font cache, pattern cache, and halftone screens. Benefits: 
  2941.     Flexibility. 
  2942.  
  2943.  
  2944. ~Subject: 11.26 Resources 
  2945.  
  2946.  
  2947.  
  2948.     * A resource is a collection of named objects that either reside in 
  2949.       VM or can be located and brought into VM on demand. There are 
  2950.       separate categories of resources with independent name spaces - 
  2951.       for example, fonts and forms are distinct resource categories. 
  2952.  
  2953.  
  2954.     * The language includes convenient facilities for locating and 
  2955.       managing resources. 
  2956.  
  2957.  
  2958. ~Subject: 11.27 Dictionaries 
  2959.  
  2960.     Many Level 2 operators expect a dictionary operand that contains 
  2961.     key-value pairs specifying parameters to the operator. Language 
  2962.     features controlled in this way include halftones, images, forms, 
  2963.     patterns, and device setup. This organization allows for optional 
  2964.     parameters and future extensibility. For convenience in using such 
  2965.     operators, the PostScript language syntax includes new tokens, 
  2966.   
  2967.   
  2968.    << and >>,
  2969.   
  2970.   
  2971.     to construct a dictionary containing the bracketed key-value pairs. 
  2972.     Benefits: Convenience, extensibility. 
  2973.  
  2974.  
  2975. ~Subject: 11.28 What's the feedback from Adobe's OEMs on PostScript Level 2? 
  2976.  
  2977.     The feedback has been overwhelmingly positive. We have always 
  2978.     believed that we are taking our OEMs, ISVs and end users best 
  2979.     interests into account in moving forward with the PostScript 
  2980.     language. The feedback we have received so far confirms that we are 
  2981.     doing the right thing on all fronts. 
  2982.  
  2983.  
  2984. ~Subject: 11.29 How much ROM/RAM will it take for a Level 2 printer? 
  2985.  
  2986.     As is true with our current implementations, RAM/ROM requirements 
  2987.     will vary from one device to the next depending on the specific 
  2988.     capabilities of each device. However, our estimates put the code 
  2989.     size at approximately 1.5 Mb of ROM (for CISC processors), and 1.5 
  2990.     Mb of RAM, minimum. 
  2991.  
  2992.  
  2993. ~Subject: 11.30 When did Level 2 products come available? 
  2994.  
  2995.     The first Level 2 products were available in early 1991. 
  2996.  
  2997.  
  2998. ~Subject: 11.31 What about existing PostScript printers? Are they obsolete? 
  2999.  
  3000.     The current generation of PostScript printers (which you could 
  3001.     think of as PostScript Level 1) will not become obsolete because of 
  3002.     Level 2 products. Think of Level 1 and Level 2 printers as a family 
  3003.     of products, each having its own set of features to suit the needs 
  3004.     of a particular customer. While we will continue to support and 
  3005.     build Level 1 products (based on our OEM's demands) we think that 
  3006.     over the next 12-18 months most of our OEMs will begin providing 
  3007.     PostScript Level 2 products. 
  3008.  
  3009.  
  3010. ~Subject: 11.32 Are Level 1 and Level 2 implementations compatible? 
  3011.  
  3012.     All existing programs that run on today's PostScript printers will 
  3013.     run on a Level 2 device. That is, PostScript Level 2 is upward 
  3014.     compatible with the existing installed base of printers and print 
  3015.     drivers. However, it is not 100 % backward compatible. A file 
  3016.     written specifically to take advantage of some Level 2 features 
  3017.     will not run on a Level 1 printer because some functionality cannot 
  3018.     be emulated. Most Level 2 features can be emulated on a Level 1 
  3019.     printer and an intelligent driver can conditionally use Level 2 
  3020.     features when available, and fall back on Level 1 operators when 
  3021.     not. The new red book will include an appendix that will help ISVs 
  3022.     deal specifically with compatibility issues. 
  3023.  
  3024.  
  3025. ~Subject: 11.33 When will the new red book be available? 
  3026.  
  3027.     A new version of the red book, called the PostScript Language 
  3028.     Reference Manual, Second Edition, was be published by Addison- 
  3029.     Wesley in December 1990, and was generally available around May of 
  3030.     1991. 
  3031.  
  3032.  
  3033. ~Subject: 11.34 How is Adobe positioning PostScript Level 2? 
  3034.  
  3035.     Adobe is positioning PostScript Level 2 as an integral part of a 
  3036.     total system solution for printing and display environments. 
  3037.     PostScript Level 2 software provides the foundation for Adobe's 
  3038.     OEMs to implement an entire spectrum of products from low-cost 
  3039.     desktop laser printers for office-automation to high-resolution 
  3040.     imagesetters for producing color separations. 
  3041.  
  3042.     Let's put PostScript Level 2 in perspective with respect to the 
  3043.     overall printing solution. The effectiveness and performance of any 
  3044.     particular printing solution is affected by four main elements: 
  3045.  
  3046.  
  3047.  
  3048.     * Driver: Each major system software environment (Macintosh, 
  3049.       Windows, OS/2 Presentation Manager, NeXT) has a built-in 
  3050.       PostScript language driver. These system level drivers ensure 
  3051.       that all applications running in the environment can output to 
  3052.       PostScript printers. These drivers do not always produce the most 
  3053.       efficient PostScript language programs, and may not support the 
  3054.       wide variety of features available in the language or specific 
  3055.       hardware features in a PostScript printer. 
  3056.  
  3057.  
  3058.     * Language: The PostScript language as defined in the PostScript 
  3059.       Language Reference Manual (the ``red book'') is the standard 
  3060.       today. 
  3061.  
  3062.  
  3063.     * Communications: AppleTalk, parallel, and serial communications 
  3064.       are the most commonly used interfaces with PostScript printers 
  3065.       today. 
  3066.  
  3067.  
  3068.     * Controller: Today, most Adobe PostScript printers are based on a 
  3069.       variety of controllers: Scout (68000), Atlas (68020), and Atlas 
  3070.       Plus (68030). In addition, there are a number of custom 
  3071.       controller solutions offered by our OEMs. Total system throughput 
  3072.       is a function of all four elements. An efficient driver can 
  3073.       produce PostScript page descriptions that print much faster; 
  3074.       speed increases of 2-3x over an inefficient driver are not 
  3075.       uncommon. Communications bottlenecks can account for a majority 
  3076.       of the time it takes to print a page; a very large scanned image 
  3077.       can take minutes to transmit to the printer, even using 
  3078.       AppleTalk. And of course, the speed of the controller itself has 
  3079.       a direct impact on the time it can take to print a page. However, 
  3080.       the limiting factor 
  3081.  
  3082.     PostScript Level 2 is one component of a total systems solution 
  3083.     being assembled by Adobe: 
  3084.  
  3085.  
  3086.  
  3087.     * Adobe is developing drivers for the Macintosh, Windows 3.0, and 
  3088.       OS/2 Presentation Manager environments. These drivers will take 
  3089.       full advantage of the features and performance enhancements in 
  3090.       PostScript Level 2 printers as well as existing PostScript 
  3091.       printers. 
  3092.  
  3093.  
  3094.     * PostScript Level 2 extends the PostScript language with new 
  3095.       operators to improve performance and provide additional 
  3096.       functionality to address the need of end users and ISVs. 
  3097.  
  3098.  
  3099.     * PostScript Level 2 includes a variety of file compression 
  3100.       techniques that can be used to reduce the amount of information 
  3101.       sent (and hence the time to do so) to the PostScript printer. 
  3102.  
  3103.  
  3104.     * Adobe is developing new controllers based on the latest RISC 
  3105.       technology which are up to 22 times faster than current 
  3106.       controllers. In addition, these controllers provide our OEMs the 
  3107.       potential for providing direct SCSI input and Ethernet 
  3108.       connections for increased throughput. 
  3109.  
  3110.     (C) 1990 Adobe Systems Incorporated. All rights reserved. 
  3111.     PostScript, Display PostScript, and Adobe are trademarks of Adobe 
  3112.     Systems Incorporated registered in the U.S. All other product names 
  3113.     are trademarks or registered trademarks of their respective 
  3114.     holders. 
  3115.